ADPfusion-0.4.1.1: Efficient, high-level dynamic programming.

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.SynVar.Recursive.Type

Documentation

data IRec m i x where Source

Constructors

IRec :: !(TblConstraint i) -> !i -> !i -> !(i -> i -> m x) -> IRec m i x 

Fields

iRecConstraint :: !(TblConstraint i)
 
iRecFrom :: !i
 
iRecTo :: !i
 
iRecFun :: !(i -> i -> m x)
 

Instances

Element ls i => Element ((:!:) ls (Backtrack (IRec mF i x) mF mB r)) i 
Element ls i => Element ((:!:) ls (IRec m i x)) i 
(Monad m, IndexStream i) => Axiom (IRec m i x) 
Build (IRec m i x) 
GenBacktrackTable (IRec mF i x) mF mB r 
(Monad mB, IndexStream i) => Axiom (Backtrack (IRec mF i x) mF mB r) 
type Arg ((:!:) ls (Backtrack (IRec mF i x) mF mB r)) = (:.) (Arg ls) (x, mB (Stream mB r)) 
type Arg ((:!:) ls (IRec m i x)) = (:.) (Arg ls) x 
data Elm ((:!:) ls (Backtrack (IRec mF i x) mF mB r)) i = ElmBtIRec !x !(mB (Stream mB r)) !i !i !(Elm ls i) 
data Elm ((:!:) ls (IRec m i x)) i = ElmIRec !x !i !i !(Elm ls i) 
type AxiomStream (IRec m i x) = m x 
type Stack (IRec m i x) = (:!:) S (IRec m i x) 
type BacktrackIndex (IRec mF i x) = i 
data Backtrack (IRec mF i x) mF = BtIRec !(TblConstraint i) !i !i (i -> i -> mB x) (i -> i -> mB [r]) 
type AxiomStream (Backtrack (IRec mF i x) mF mB r) = mB [r]