RSolve-0.1.0.1: A general solver for equations

Safe HaskellSafe
LanguageHaskell2010

RSolve.Infr

Documentation

type Addr = Int Source #

class Eq a => Reference a where Source #

Methods

isRef :: a -> Maybe Addr Source #

mkRef :: Addr -> a Source #

Instances
Reference Core Source # 
Instance details

Defined in RSolve.HM.Core

Reference Term Source # 
Instance details

Defined in RSolve.Options.Core

class Reference a => Unify a where Source #

Minimal complete definition

prune, unify

Methods

prune :: a -> Br (LState a) a Source #

unify :: a -> a -> Br (LState a) () Source #

complement :: a -> a -> Br (LState a) () Source #

Instances
Unify Core Source # 
Instance details

Defined in RSolve.HM.Core

Unify Term Source # 
Instance details

Defined in RSolve.Options.Core

class EnumSet a where Source #

Methods

toEnumerable :: Br (LState a) () Source #

Instances
EnumSet Term Source # 
Instance details

Defined in RSolve.Options.Core

data Allocator a Source #

Constructors

Allocator 

Fields

Instances
Show a => Show (Allocator a) Source # 
Instance details

Defined in RSolve.Infr

data LState a Source #

Constructors

LState 

Fields

negPairs' :: [(a, a)] -> LState a -> LState a Source #

alloc :: Reference a => a -> Allocator a -> (Addr, Allocator a) Source #

renew :: Reference a => Addr -> a -> Allocator a -> Allocator a Source #

store :: (Reference a, Eq a) => a -> Br (LState a) a Source #

update :: Reference a => Addr -> a -> Br (LState a) () Source #

load :: Addr -> Br (LState a) a Source #

negUnify :: Reference a => a -> a -> Br (LState a) () Source #