This package provides tools to work with monadic profunctors: types that are both monads and profunctors.
Currently known instances of monadic profunctors are certain types of bidirectional programs, i.e., programs that have "invertible" interpretations.
attoparsec
(parsing) wrapper: unparse-attoparsec
QuickCheck
(random generation) wrapper: gap
lens
wrapper: lens-monad
codec
for a general
monadic profunctor for bidirectional programming, has implementations for
aeson
and binary
. The idea of monadic profunctors first came from this
package.