vinyl-effects-0.0.0: TODO

Safe HaskellNone
LanguageHaskell2010

Vinyl.Effects

Description

Extensible effects. Minimal boilerplate. (Weakened inference).

See Vinyl.Effects.Example for a detailed tutorial.

Dependencies:

  • the free package, for Free (which transforms a functor into a monad) and Cofree (which transforms a functor into a comonad).
  • the vinyl package, for (TODO) CoRec (an n-ary, un-nested sum type) and Rec (an n-ary, un-nested product type).

Concepts (necessary only for contributing to the library, not using it):

Reverse Dependencies:

  • packdeps.haskellers.comreversevinyl-effects
  • TODO workflow-types uses this package to maximize the effects the platform-independent monad provides, while still preserving the richer effects the platform-specific monads provide (in workflow-linux, workflow-osx, and workflow-windows). e.g. OSX can easily access the clipboard via bash.

Extensions:

  • The effects as a type-level set, not a type-level list (from GHC.TypeLits); i.e. the items are unique. (Currently, I think the duplicates are ignored).
  • "extensible interpreters" via cofree comonads. (The original motivation for this package only needed the Language to be extensible).

Existing Alternatives:

  • effects: uses -XOverloadedInstances. bad inference?
  • <> romansch:
  • <> ocharles:
  • <> mtl: doesn't compose

Documentation

module Data.Vinyl