bound-0.9: Making de Bruijn Succ Less

Portabilityportable
Stabilityexperimental
MaintainerEdward Kmett <ekmett@gmail.com>
Safe HaskellTrustworthy

Bound.Var

Description

 

Synopsis

Documentation

data Var b a Source

"I am not a number, I am a free monad!"

A Var b a is a variable that may either be "bound" (B) or "free" (F).

(It is also technically a free monad in the same near-trivial sense as Either.)

Constructors

B b

this is a bound variable

F a

this is a free variable

Instances

Typeable2 Var 
Bitraversable Var 
Bifunctor Var 
Bifoldable Var 
Serial2 Var 
Hashable2 Var 
Eq2 Var 
Ord2 Var 
Show2 Var 
Read2 Var 
Monad (Var b) 
Functor (Var b) 
Applicative (Var b) 
Foldable (Var b) 
Traversable (Var b) 
Serial b => Serial1 (Var b) 
Hashable b => Hashable1 (Var b) 
Eq b => Eq1 (Var b) 
Ord b => Ord1 (Var b) 
Show b => Show1 (Var b) 
Read b => Read1 (Var b) 
(Eq b, Eq a) => Eq (Var b a) 
(Data b, Data a) => Data (Var b a) 
(Ord b, Ord a) => Ord (Var b a) 
(Read b, Read a) => Read (Var b a) 
(Show b, Show a) => Show (Var b a) 
Generic (Var b a) 
(Binary b, Binary a) => Binary (Var b a) 
(Serial b, Serial a) => Serial (Var b a) 
(Serialize b, Serialize a) => Serialize (Var b a) 
(Hashable b, Hashable a) => Hashable (Var b a) 

unvar :: (b -> r) -> (a -> r) -> Var b a -> rSource

_B :: (Choice p, Applicative f) => p b (f b') -> p (Var b a) (f (Var b' a))Source

_F :: (Choice p, Applicative f) => p a (f a') -> p (Var b a) (f (Var b a'))Source