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-attoparsecQuickCheck(random generation) wrapper:gaplenswrapper:lens-monad
codecfor a general monadic profunctor for bidirectional programming, has implementations foraesonandbinary. The idea of monadic profunctors first came from this package.