Wired-0.2.2: Wire-aware hardware description

Data.Logical.Knot

Documentation

data Knot i x a Source

Instances

Ord i => MonadKnot i x (Knot i x) 
Monad (Knot i x) 
MonadFix (Knot i x) 

data KnotT i x m a Source

Instances

(Monad m, Ord i) => MonadKnot i x (KnotT i x m) 
MonadTrans (KnotT i x) 
Monad m => Monad (KnotT i x m) 
MonadFix m => MonadFix (KnotT i x m) 

class (Monad m, Ord i) => MonadKnot i x m | m -> i x whereSource

Methods

askKnot :: i -> m xSource

askKnotDef :: x -> i -> m xSource

(*=) :: i -> x -> m ()Source

Instances

MonadKnot VarId x (Let x) 
Ord i => MonadKnot i x (Knot i x) 
MonadKnot i x m => MonadKnot i x (StateT s m) 
Monad m => MonadKnot VarId x (LetT x m) 
(Monad m, Ord i) => MonadKnot i x (KnotT i x m) 

accKnot :: Ord i => (x -> x -> x) -> Knot i x a -> (a, Map i x)Source

tieKnot :: Ord i => Knot i x a -> (a, Map i x)Source

accKnotT :: (Ord i, MonadFix m) => (x -> x -> x) -> KnotT i x m a -> m (a, Map i x)Source

tieKnotT :: (Ord i, MonadFix m) => KnotT i x m a -> m (a, Map i x)Source