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 foraeson
andbinary
. The idea of monadic profunctors first came from this package.