(Monad mB, Element ls PointL, PrimArrayOps arr PointL x, MkStream mB ls PointL) => MkStream mB ((:!:) ls (Backtrack (ITbl mF arr PointL x) mF mB r)) PointL | |
(Monad m, Element ls PointL, PrimArrayOps arr PointL x, MkStream m ls PointL) => MkStream m ((:!:) ls (ITbl m arr PointL x)) PointL | |
(Monad m, Element ls BitSet, PrimArrayOps arr BitSet x, MkStream m ls BitSet) => MkStream m ((:!:) ls (ITbl m arr BitSet x)) BitSet | |
(Monad mB, Element ls Subword, MkStream mB ls Subword, PrimArrayOps arr Subword x) => MkStream mB ((:!:) ls (Backtrack (ITbl mF arr Subword x) mF mB r)) Subword | |
(Monad m, Element ls Subword, PrimArrayOps arr Subword x, MkStream m ls Subword) => MkStream m ((:!:) ls (ITbl m arr Subword x)) Subword | |
(Monad mB, Element ls (Outside ((:.) is i)), TableStaticVar (Outside ((:.) is i)), TableIndices (Outside ((:.) is i)), MkStream mB ls (Outside ((:.) is i)), PrimArrayOps arr (Outside ((:.) is i)) x, Show ((:.) is i)) => MkStream mB ((:!:) ls (Backtrack (ITbl mF arr (Outside ((:.) is i)) x) mF mB r)) (Outside ((:.) is i)) | |
(Monad m, Element ls (Outside ((:.) is i)), TableStaticVar (Outside ((:.) is i)), TableIndices (Outside ((:.) is i)), MkStream m ls (Outside ((:.) is i)), PrimArrayOps arr (Outside ((:.) is i)) x, Show ((:.) is i)) => MkStream m ((:!:) ls (ITbl m arr (Outside ((:.) is i)) x)) (Outside ((:.) is i)) | |
(Monad mB, Element ls (Outside PointL), PrimArrayOps arr (Outside PointL) x, MkStream mB ls (Outside PointL)) => MkStream mB ((:!:) ls (Backtrack (ITbl mF arr (Outside PointL) x) mF mB r)) (Outside PointL) | |
(Monad m, Element ls (Outside PointL), PrimArrayOps arr (Outside PointL) x, MkStream m ls (Outside PointL)) => MkStream m ((:!:) ls (ITbl m arr (Outside PointL) x)) (Outside PointL) | |
(Monad m, Element ls (Complement Subword), PrimArrayOps arr (Outside Subword) x, MkStream m ls (Complement Subword)) => MkStream m ((:!:) ls (ITbl m arr (Outside Subword) x)) (Complement Subword) | |
(Monad m, Element ls (Complement Subword), PrimArrayOps arr Subword x, MkStream m ls (Complement Subword)) => MkStream m ((:!:) ls (ITbl m arr Subword x)) (Complement Subword) | |
(Monad m, Element ls (Outside Subword), PrimArrayOps arr Subword x, MkStream m ls (Outside Subword)) => MkStream m ((:!:) ls (ITbl m arr Subword x)) (Outside Subword) | |
(Monad m, Element ls (Outside Subword), PrimArrayOps arr (Outside Subword) x, MkStream m ls (Outside Subword)) => MkStream m ((:!:) ls (ITbl m arr (Outside Subword) x)) (Outside Subword) | |
(Monad mB, Element ls ((:.) is i), TableStaticVar ((:.) is i), TableIndices ((:.) is i), MkStream mB ls ((:.) is i), PrimArrayOps arr ((:.) is i) x) => MkStream mB ((:!:) ls (Backtrack (ITbl mF arr ((:.) is i) x) mF mB r)) ((:.) is i) | |
(Monad m, Element ls ((:.) is i), TableStaticVar ((:.) is i), TableIndices ((:.) is i), MkStream m ls ((:.) is i), PrimArrayOps arr ((:.) is i) x) => MkStream m ((:!:) ls (ITbl m arr ((:.) is i) x)) ((:.) is i) | |
(Monad m, Element ls (BS2I First Last), PrimArrayOps arr (BS2I First Last) x, MkStream m ls (BS2I First Last), Show x) => MkStream m ((:!:) ls (ITbl m arr (BS2I First Last) x)) (BS2I First Last) | |
(Show x, Show i, Show (Elm ls i)) => Show (Elm ((:!:) ls (Backtrack (ITbl mF arr i x) mF mB r)) i) | |
(Show i, Show (Elm ls i), Show x) => Show (Elm ((:!:) ls (ITbl m arr j x)) i) | |
TableOrder ts => TableOrder ((:.) ts (ITbl im arr i x)) | |
Element ls i => Element ((:!:) ls (Backtrack (ITbl mF arr i x) mF mB r)) i | |
Element ls i => Element ((:!:) ls (ITbl m arr j x)) i | |
GetIxs ls i => GetIxs ((:!:) ls (ITbl m a i x)) i | |
(Monad om, MutateCell ((:.) ts (ITbl im arr i x)) im om i, PrimArrayOps arr i x, Show i, IndexStream i, TableOrder ((:.) ts (ITbl im arr i x))) => MutateTables ((:.) ts (ITbl im arr i x)) im om | |
(PrimArrayOps arr i x, MPrimArrayOps arr i x, MutateCell ts im om i, PrimMonad om, Show x, Show i) => MutateCell ((:.) ts (ITbl im arr i x)) im om i | |
(Monad mB, PrimArrayOps arr i x, IndexStream i) => Axiom (Backtrack (ITbl mF arr i x) mF mB r) | |
(Monad m, PrimArrayOps arr i x, IndexStream i) => Axiom (ITbl m arr i x) | |
ModifyConstraint (Backtrack (ITbl mF arr Subword x) mF mB r) | |
ModifyConstraint (ITbl m arr Subword x) | |
Build (ITbl m arr i x) | |
GenBacktrackTable (ITbl mF arr i x) mF mB r | |
data Elm ((:!:) ls (ITbl m arr j x)) = ElmITbl !x !i !i !(Elm ls i) | |
type Arg ((:!:) ls (Backtrack (ITbl mF arr i x) mF mB r)) = (:.) (Arg ls) (x, [r]) | |
type Arg ((:!:) ls (ITbl m arr j x)) = (:.) (Arg ls) x | |
data Elm ((:!:) ls (Backtrack (ITbl mF arr i x) mF mB r)) i = ElmBtITbl !x [r] !i !i !(Elm ls i) | |
type R ((:!:) ls (ITbl m a i x)) i = (:.) (R ls i) (i, i) | |
type AxiomStream (Backtrack (ITbl mF arr i x) mF mB r) = mB [r] | |
type AxiomStream (ITbl m arr i x) = m x | |
type Stack (ITbl m arr i x) = (:!:) S (ITbl m arr i x) | |
type BacktrackIndex (ITbl mF arr i x) = i | |
data Backtrack (ITbl mF arr i x) mF = BtITbl !(TblConstraint i) !(arr i x) (i -> i -> mB [r]) | |