Package0.1.1.0Control
vortex-combinators
Interpreter combinators for any first-order vortex theory
- Version0.1.1.0
- CategoryControl
- LicenceMIT
- AuthorDaniel Firth
- Maintainerlocallycompact@gmail.com
- Pinned byhackage vortex-combinators 0.1.1.0
- Sourcehackage.haskell.org/package/vortex-combinators-0.1.1.0
Modules
9 modules- Vortex.Combinators.Cache10A cache in front of an interpreter, usually a forwarder. Reads are
- Vortex.Combinators.Forward1Forward a theory to an upstream: each operation becomes a call over
- Vortex.Combinators.Meter7
- Vortex.Combinators.Permit3The policy is any Verb -> Sem r Answer. A static grant table, a
- Vortex.Combinators.Record2Record every operation and what it came to; replay a recording
- Vortex.Combinators.Split1
- Vortex.Combinators.Tee5
- Vortex.Combinators.Theory26What an interpreter combinator needs to know about a theory, each as
- Vortex.Combinators.Transport9How a forwarder reaches its upstream: one Call out, one terminal
Description
Interpreter transformers that work for any first-order polysemy effect: forward each operation over a transport (the vortex wire, or an in-memory loopback), tee two interpreters and report divergence, cache a forwarder's reads under a tick-based staleness bound, split by routing key, record and replay, and meter per verb. A theory supplies what each needs as a small class: the wire form of its operations and results, equality on results, a read/write split with invalidation keys, and a routing key. The laws are Hedgehog properties any theory instantiates with its own generators, in vortex-combinators-laws.
Depends on
8 packages- base-4.22.0.0with GHC
- containers-0.8with GHC
- polysemy-1.9.2.0in this set
- polysemy-kvstore-0.1.3.0in this set
- text-2.1.3with GHC
- vortex-call-0.1.1.0in this set
- vortex-session-0.3.0in this set
- vortex-trace-0.4.1in this set
Used by in this set · 0
Nothing in this set depends on it.