unique-logic-0.3: Solve simple simultaneous equations

Safe HaskellNone

UniqueLogic.ST.System

Contents

Synopsis

Preparation

class Var var whereSource

Methods

plainVariable :: var w s a -> Variable w s aSource

runApply :: Monoid w => Apply w s a -> var w s a -> T w s ()Source

constant :: Monoid w => a -> T w s (var w s a)Source

localVariable :: Monoid w => T w s (var w s a)Source

Instances

data Variable w s a Source

Instances

Posing statements

data T w s a Source

Instances

Monad (T w s) 
Functor (T w s) 
Applicative (T w s) 

assignment2 :: (Var var, Monoid w) => (a -> b) -> var w s a -> var w s b -> T w s ()Source

assignment3 :: (Var var, Monoid w) => (a -> b -> c) -> var w s a -> var w s b -> var w s c -> T w s ()Source

data Apply w s a Source

Instances

Monoid w => Functor (Apply w s) 
Monoid w => Applicative (Apply w s) 

arg :: (Var var, Monoid w) => var w s a -> Apply w s aSource

Solution

solve :: T () s a -> ST s aSource

query :: (Var var, Monoid w) => var w s a -> ST s (Maybe a)Source