unique-logic-tf-0.4.1.2: Solve simple simultaneous equations

Safe HaskellSafe
LanguageHaskell98

UniqueLogic.ST.TF.System.Label

Contents

Synopsis

Preparation

globalVariable :: Monoid w => (a -> Writer w a) -> ST s (Variable w s a) Source

Posing statements

type T w = T (WriterT w) Source

localVariable :: (C w, Value w a) => T w s (Variable w s a) Source

constant :: (C w, Value w a) => a -> T w s (Variable w s a) Source

assignment2 :: C w => (a -> b) -> Variable w s a -> Variable w s b -> T w s () Source

assignment3 :: C w => (a -> b -> c) -> Variable w s a -> Variable w s b -> Variable w s c -> T w s () Source

data Apply w s a Source

Instances

arg :: Variable w s a -> Apply w s a Source

This function allows to generalize assignment2 and assignment3 to more arguments. You could achieve the same with nested applications of assignment3 (,).

runApply :: C w => Apply w s a -> Variable w s a -> T w s () Source

Solution

solve :: C w => T w s a -> w (ST s) a Source

query :: Variable w s a -> ST s (Maybe a) Source