Copyright | (C) 2016 Aaron Levin |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | Aaron Levin <aaron.michael.benjamin.levin@gmail.com> |

Stability | provisional |

Portability | non-portable (rank-2 polymorphism) |

Safe Haskell | None |

Language | Haskell2010 |

"van Laarhoven encoded Free Monad with extensible effects"

# Documentation

(.:.) :: effect m -> Effects effects m -> Effects (effect : effects) m infixr 4 Source

Helper combinator for creating values of 'Effects effects m'

a customized HList of effects. We need to carry the `m`

param around for
type inference.

The van Laarhoven-encoded Free Monad with Extensible effects

class HasEffect effects effect Source

A class to help us fetch effects from our effect stack.

getEffect

HasEffect ((:) ((* -> *) -> *) effect effects) effect Source | An instance of |

HasEffect effects effect => HasEffect ((:) ((* -> *) -> *) notIt effects) effect Source | An instance of |