Crate functo_rs

Source
Expand description

This crate provides abstractions over data and control functors, as described in A Tale of Two Functors or: How I Learned to Stop Worrying and Love Data and Ccontrol. The original article takes linear types into account, but in Rust we have to do with affine types. This difference means Option and Result CAN be control functors, which are not in linear case.

Modulesยง

  • Control functors are special case of data functors, which can take FnOnce as continuations.
  • Data functors abstracts over data-like structures, which can cosume continuations as many times as they want. Some of data functors can be control functors, which can consume continuations at most once.
  • Various implementations of functors.