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

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.SynVar.Backtrack

Description

Wrap forward tables in such a way as to allow backtracking via algebras.

Synopsis

Documentation

class GenBacktrackTable t mF mB where Source #

TODO this should go into ADP.Fusion.Table.Backtrack, more than just tabulated syntactic vars are going to use it.

NOTE You probably need to give the monad morphism between mF and mB so as to be able to extract forward results in the backtracking phase.

Minimal complete definition

toBacktrack

Associated Types

data Backtrack t (mF :: * -> *) (mB :: * -> *) :: * Source #

type BacktrackIndex t :: * Source #

Methods

toBacktrack :: t -> (forall a. mF a -> mB a) -> Backtrack t mF mB Source #

Instances

GenBacktrackTable (TwIRec mF c i x) mF mB Source # 

Associated Types

data Backtrack (TwIRec mF c i x) (mF :: * -> *) (mB :: * -> *) :: * Source #

type BacktrackIndex (TwIRec mF c i x) :: * Source #

Methods

toBacktrack :: TwIRec mF c i x -> (forall a. mF a -> mB a) -> Backtrack (TwIRec mF c i x) mF mB Source #

GenBacktrackTable (TwITbl mF arr c i x) mF mB Source # 

Associated Types

data Backtrack (TwITbl mF arr c i x) (mF :: * -> *) (mB :: * -> *) :: * Source #

type BacktrackIndex (TwITbl mF arr c i x) :: * Source #

Methods

toBacktrack :: TwITbl mF arr c i x -> (forall a. mF a -> mB a) -> Backtrack (TwITbl mF arr c i x) mF mB Source #