Portability | portable (depends on ghc) |
---|---|
Stability | provisional |
Maintainer | bastiaan.heeren@ou.nl |
Safe Haskell | Safe-Inferred |
Datatype for representing a derivation (parameterized both in the terms and the steps)
- data Derivation s a
- emptyDerivation :: a -> Derivation s a
- prepend :: (a, s) -> Derivation s a -> Derivation s a
- extend :: Derivation s a -> (s, a) -> Derivation s a
- isEmpty :: Derivation s a -> Bool
- derivationLength :: Derivation s a -> Int
- terms :: Derivation s a -> [a]
- steps :: Derivation s a -> [s]
- triples :: Derivation s a -> [(a, s, a)]
- firstTerm :: Derivation s a -> a
- lastTerm :: Derivation s a -> a
- lastStep :: Derivation s a -> Maybe s
- withoutLast :: Derivation s a -> Derivation s a
- updateSteps :: (a -> s -> a -> t) -> Derivation s a -> Derivation t a
- derivationM :: Monad m => (s -> m ()) -> (a -> m ()) -> Derivation s a -> m ()
Data type
data Derivation s a Source
BiFunctor Derivation | |
(Typed a t1, Typed a t2) => Typed a (Derivation t1 t2) | |
Functor (Derivation s) | |
(Show s, Show a) => Show (Derivation s a) |
Constructing a derivation
emptyDerivation :: a -> Derivation s aSource
prepend :: (a, s) -> Derivation s a -> Derivation s aSource
extend :: Derivation s a -> (s, a) -> Derivation s aSource
Querying a derivation
isEmpty :: Derivation s a -> BoolSource
Tests whether the derivation is empty
derivationLength :: Derivation s a -> IntSource
Returns the number of steps in a derivation
terms :: Derivation s a -> [a]Source
All terms in a derivation
steps :: Derivation s a -> [s]Source
All steps in a derivation
triples :: Derivation s a -> [(a, s, a)]Source
The triples of a derivation, consisting of the before term, the step, and the after term.
firstTerm :: Derivation s a -> aSource
lastTerm :: Derivation s a -> aSource
lastStep :: Derivation s a -> Maybe sSource
withoutLast :: Derivation s a -> Derivation s aSource
updateSteps :: (a -> s -> a -> t) -> Derivation s a -> Derivation t aSource
derivationM :: Monad m => (s -> m ()) -> (a -> m ()) -> Derivation s a -> m ()Source
Apply a monadic function to each term, and to each step