unique-logic-0.2: Solve simple simultaneous equations

Safe HaskellNone

UniqueLogic.ST.System

Contents

Synopsis

Preparation

data Variable s a Source

Posing statements

data M s a Source

Instances

Monad (M s) 
Functor (M s) 
Applicative (M s) 

constant :: a -> M s (Variable s a)Source

assignment2 :: String -> (a -> b) -> Variable s a -> Variable s b -> M s ()Source

assignment3 :: String -> (a -> b -> c) -> Variable s a -> Variable s b -> Variable s c -> M s ()Source

data Apply s a Source

Instances

arg :: Variable s a -> Apply s aSource

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

runApply :: String -> Apply s a -> Variable s a -> M s ()Source

Solution

solve :: M s a -> ST s aSource

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