Safe Haskell | None |
---|
- data MTbl i xs = MTbl !(ENZ i) !xs
- mTblSw :: ENE -> MutArr m (arr (Z :. Subword) x) -> MTbl Subword (MutArr m (arr (Z :. Subword) x))
- mTbl :: ENZ i -> MutArr m (arr i x) -> MTbl i (MutArr m (arr i x))
- class TableIndices i where
- class NonTermValidIndex i where
- nonTermValidIndex :: ENZ i -> i -> ParserRange i -> i -> Bool
- getNonTermParserRange :: ENZ i -> i -> ParserRange i -> ParserRange i
- nonTermInnerOuter :: i -> InOut i -> InOut i
- nonTermLeftIndex :: i -> InOut i -> ENZ i -> i
- data BtTbl i xs f = BtTbl !(ENZ i) !xs !f
- btTbl :: ENZ i -> xs -> f -> BtTbl i xs f
- type DefBtTbl m isi x b = BtTbl isi (Unboxed isi x) (isi -> m (Stream m b))
- type SwBtTbl m x b = BtTbl Subword (Unboxed (Z :. Subword) x) (Subword -> m (Stream m b))
- class EmptyTable x where
- toEmptyT :: x -> x
- toNonEmptyT :: x -> x
Mutable table with adaptive storage.
(Monad m, PrimMonad m, Elms ls Subword, MkStream m ls Subword, MPrimArrayOps arr (:. Z Subword) x) => MkStream m (:!: ls (MTbl Subword (MutArr m (arr (:. Z Subword) x)))) Subword | |
(Monad m, PrimMonad m, MPrimArrayOps arr (:. is i) x, Elms ls (:. is i), NonTermValidIndex (:. is i), TableIndices (:. is i), MkStream m ls (:. is i)) => MkStream m (:!: ls (MTbl (:. is i) (MutArr m (arr (:. is i) x)))) (:. is i) | |
Build (MTbl i x) | |
EmptyENZ (ENZ i) => EmptyTable (MTbl i xs) | |
(ValidIndex ls Subword, Monad m, MPrimArrayOps arr (:. Z Subword) x) => ValidIndex (:!: ls (MTbl Subword (MutArr m (arr (:. Z Subword) x)))) Subword | |
Elms ls Subword => Elms (:!: ls (MTbl Subword (MutArr m (arr (:. Z Subword) x)))) Subword | |
(ValidIndex ls (:. is i), MPrimArrayOps arr (:. is i) x, NonTermValidIndex (:. is i)) => ValidIndex (:!: ls (MTbl (:. is i) (MutArr m (arr (:. is i) x)))) (:. is i) | |
Elms ls (:. is i) => Elms (:!: ls (MTbl (:. is i) (MutArr m (arr (:. is i) x)))) (:. is i) |
mTblSw :: ENE -> MutArr m (arr (Z :. Subword) x) -> MTbl Subword (MutArr m (arr (Z :. Subword) x))Source
class TableIndices i whereSource
Generate the list of indices for use in table lookup.
Don't touch stuff in greek! ζ is the interior stack of arguments, α th stack of saved indices
tableIndices :: Monad m => InOut i -> ENZ i -> i -> Stream m ((ζ :!: α) :!: i) -> Stream m ((ζ :!: α) :!: i)Source
TableIndices Subword | |
TableIndices Z | |
TableIndices is => TableIndices (:. is PointL) | |
TableIndices is => TableIndices (:. is Subword) |
Instances
Subword
multi-dim indices
class NonTermValidIndex i whereSource
nonTermValidIndex :: ENZ i -> i -> ParserRange i -> i -> BoolSource
getNonTermParserRange :: ENZ i -> i -> ParserRange i -> ParserRange iSource
nonTermInnerOuter :: i -> InOut i -> InOut iSource
nonTermLeftIndex :: i -> InOut i -> ENZ i -> iSource
NonTermValidIndex Z | |
NonTermValidIndex is => NonTermValidIndex (:. is PointL) | |
NonTermValidIndex is => NonTermValidIndex (:. is Subword) |
(Monad m, Elms ls Subword, Unbox x, MkStream m ls Subword) => MkStream m (:!: ls (SwBtTbl m x b)) Subword | |
(Monad m, Elms ls (:. is i), ExtShape (:. is i), Shape (:. is i), Unbox x, NonTermValidIndex (:. is i), TableIndices (:. is i), MkStream m ls (:. is i)) => MkStream m (:!: ls (DefBtTbl m (:. is i) x b)) (:. is i) | |
(ValidIndex ls Subword, Unbox x) => ValidIndex (:!: ls (SwBtTbl m x b)) Subword | |
Elms ls Subword => Elms (:!: ls (SwBtTbl m x b)) Subword | |
(ValidIndex ls (:. is i), Shape (:. is i), ExtShape (:. is i), Unbox x, NonTermValidIndex (:. is i)) => ValidIndex (:!: ls (DefBtTbl m (:. is i) x b)) (:. is i) | |
Elms ls (:. is i) => Elms (:!: ls (DefBtTbl m (:. is i) x b)) (:. is i) | |
Build (BtTbl i xs f) | |
EmptyENZ (ENZ i) => EmptyTable (BtTbl i xs f) |
class EmptyTable x whereSource
toNonEmptyT :: x -> xSource
EmptyENZ (ENZ i) => EmptyTable (MTbl i xs) | |
EmptyENZ (ENZ i) => EmptyTable (BtTbl i xs f) |