bound-0.3.1: Haskell 98/2010 Locally-Nameless Generalized de Bruijn Terms

Portabilityportable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellSafe-Infered

Bound.Class

Description

 

Synopsis

Documentation

class Bound t whereSource

Instances may or may not be monad transformers.

If they are, then you can use m >>>= f = m >>= lift . f

This is useful for types like expression lists, case alternatives, schemas, etc. that may not be expressions in their own right, but often contain one.

Methods

(>>>=) :: Monad f => t f a -> (a -> f c) -> t f cSource

Instances

Bound (Scope b) 

(=<<<) :: (Bound t, Monad f) => (a -> f c) -> t f a -> t f cSource