Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lysxia/profunctor-monad
Bidirectional programming in Haskell with monadic profunctors
https://github.com/lysxia/profunctor-monad
Last synced: 17 days ago
JSON representation
Bidirectional programming in Haskell with monadic profunctors
- Host: GitHub
- URL: https://github.com/lysxia/profunctor-monad
- Owner: Lysxia
- License: mit
- Created: 2016-12-19T18:19:05.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-05-17T04:50:00.000Z (over 2 years ago)
- Last Synced: 2024-10-11T21:52:43.632Z (about 1 month ago)
- Language: Coq
- Homepage:
- Size: 38.1 KB
- Stars: 44
- Watchers: 7
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Bidirectional Programming with Monadic Profunctors
==================================================This package provides tools to work with *monadic profunctors*:
types that are both monads and profunctors.Applications
------------Currently known instances of monadic profunctors are certain types of
bidirectional programs, i.e., programs that have "invertible" interpretations.- `attoparsec` (parsing) wrapper: [`unparse-attoparsec`](https://github.com/Lysxia/unparse-attoparsec)
- `QuickCheck` (random generation) wrapper: [`gap`](https://github.com/Lysxia/gap)
- `lens` wrapper: [`lens-monad`](https://github.com/Lysxia/lens-monad)See also
--------- [`codec`](https://hackage.haskell.org/package/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.### More bidirectional programming in Haskell
- [`lens`](https://hackage.haskell.org/package/lens)
- [`boomerang`](https://hackage.haskell.org/package/boomerang)
- [`roundtrip`](https://hackage.haskell.org/package/roundtrip)### Generic programming with monoidal profunctors
- [`product-profunctors`](https://hackage.haskell.org/package/product-profunctors)
- [`one-liner`](https://hackage.haskell.org/package/one-liner)