ixmonad-0.50: Embeds effect systems into Haskell using an parameteric effect monad (the |Effect| type class)

Safe HaskellNone
LanguageHaskell98

Control.Effect.Counter

Documentation

data Z Source

Instances

type n :+ Z = n 

data S n Source

Instances

type n :+ (S m) = S ((:+) n m) 

data Counter n a Source

Instances

Effect * Counter 
type Unit * Counter = Z 
type Plus * Counter n m = (:+) n m 
type Inv * Counter n m = () 

tick :: a -> Counter (S Z) a Source

type family n :+ m Source

Instances

type n :+ Z = n 
type n :+ (S m) = S ((:+) n m)