Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data ITbl (bigorder :: Nat) (smallOrder :: Nat) arr c i x where Source #
Immutable table.
NOTE / TODO We can *NOT* move the little order into the type-level until we have a fully working TH-based table filler.
ITbl | |
|
Instances
(PrimArrayOps arr i x, MPrimArrayOps arr i x, isThisBigOrder ~ IsThisBigOrder bigOrder ts, isThisSmallOrder ~ IsThisSmallOrder smallOrder ts, isThisOrder ~ (isThisBigOrder && isThisSmallOrder), ThisSmallOrder bigOrder smallOrder isThisOrder ts i) => ThisSmallOrder bigOrder smallOrder True (ts :. TwITbl bo so Id arr c i x) i Source # | TODO generalize from |
SplitIxCol uId (SameSid uId (Elm ls i)) (Elm ls i) => SplitIxCol uId True (Elm (ls :!: Split sId splitType (TwITblBt b s arr c j x mF mB r)) i) Source # | |
SplitIxCol uId (SameSid uId (Elm ls i)) (Elm ls i) => SplitIxCol uId True (Elm (ls :!: Split sId splitType (TwITbl b s m arr c j x)) i) Source # | |
(smallOrder ~ SmallOrderNats (ts :. TwITbl bo so m arr c i x), EachSmallOrder boNat smallOrder (ts :. TwITbl bo so m arr c i x) i, PrimArrayOps arr i x, IndexStream i) => ThisBigOrder boNat True (ts :. TwITbl bo so m arr c i x) Source # | We have found the first table for our big order. Extract the bounds and hand over to small order. We do not need to check for another big order with this nat, since all tables are now being filled by the small order. |
(CountNumberOfCells n ts, Index i, PrimArrayOps arr i x, KnownNat n, KnownNat bo) => CountNumberOfCells n (ts :. TwITbl bo so Id arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.FillTyLvl | |
(Monad mB, ITblCx mB pos ls arr x u c (i O), MkStream mB (LeftPosTy pos (TwITblBt b s arr c u x mF mB r) (i O)) ls (i O)) => MkStream mB (pos :: Type) (ls :!: TwITblBt b s arr c u x mF mB r) (i O) Source # | |
(Monad m, ITblCx m pos ls arr x u c (i O), MkStream m (LeftPosTy pos (TwITbl b s m arr c u x) (i O)) ls (i O)) => MkStream m (pos :: Type) (ls :!: TwITbl b s m arr c u x) (i O) Source # | |
(Monad mB, ITblCx mB pos ls arr x u c (i I), MkStream mB (LeftPosTy pos (TwITblBt b s arr c u x mF mB r) (i I)) ls (i I)) => MkStream mB (pos :: Type) (ls :!: TwITblBt b s arr c u x mF mB r) (i I) Source # | |
(Monad m, ITblCx m pos ls arr x u c (i I), MkStream m (LeftPosTy pos (TwITbl b s m arr c u x) (i I)) ls (i I)) => MkStream m (pos :: Type) (ls :!: TwITbl b s m arr c u x) (i I) Source # | |
(Monad mB, pos ~ (ps :. p), posLeft ~ LeftPosTy pos (TwITblBt b s arr (cs :. c) (us :. u) x mF mB r) (is :. i), Element ls (is :. i), TableStaticVar (ps :. p) (cs :. c) (us :. u) (is :. i), AddIndexDense pos (Elm ls (is :. i)) (cs :. c) (us :. u) (is :. i), MkStream mB posLeft ls (is :. i), PrimArrayOps arr (us :. u) x) => MkStream mB (ps :. p :: Type) (ls :!: TwITblBt b s arr (cs :. c) (us :. u) x mF mB r) (is :. i) Source # | |
(Monad m, pos ~ (ps :. p), posLeft ~ LeftPosTy pos (TwITbl b s m arr (cs :. c) (us :. u) x) (is :. i), Element ls (is :. i), TableStaticVar (ps :. p) (cs :. c) (us :. u) (is :. i), AddIndexDense pos (Elm ls (is :. i)) (cs :. c) (us :. u) (is :. i), MkStream m posLeft ls (is :. i), PrimArrayOps arr (us :. u) x) => MkStream m (ps :. p :: Type) (ls :!: TwITbl b s m arr (cs :. c) (us :. u) x) (is :. i) Source # | |
(Show x, Show i, Show (RunningIndex i), Show (Elm ls i)) => Show (Elm (ls :!: TwITblBt b s arr c i x mF mB r) i) Source # | |
(Show i, Show (RunningIndex i), Show (Elm ls i), Show x) => Show (Elm (ls :!: TwITbl b s m arr c j x) i) Source # | |
(Monad mB, PrimArrayOps arr i x, IndexStream i, j ~ i, m ~ mB) => Axiom (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) Source # | We need this somewhat annoying instance construction ( |
Defined in ADP.Fusion.Core.SynVar.Array.Type type AxiomStream (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) :: Type Source # type AxiomIx (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) :: Type Source # axiom :: TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r]) -> AxiomStream (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) Source # axiomAt :: TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r]) -> AxiomIx (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) -> AxiomStream (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) Source # | |
Element ls i => Element (ls :!: TwITblBt b s arr c j x mF mB r) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type data Elm (ls :!: TwITblBt b s arr c j x mF mB r) i :: Type Source # type RecElm (ls :!: TwITblBt b s arr c j x mF mB r) i :: Type Source # type Arg (ls :!: TwITblBt b s arr c j x mF mB r) :: Type Source # getArg :: Elm (ls :!: TwITblBt b s arr c j x mF mB r) i -> Arg (ls :!: TwITblBt b s arr c j x mF mB r) Source # getIdx :: Elm (ls :!: TwITblBt b s arr c j x mF mB r) i -> RunningIndex i Source # getElm :: Elm (ls :!: TwITblBt b s arr c j x mF mB r) i -> RecElm (ls :!: TwITblBt b s arr c j x mF mB r) i Source # | |
Element ls i => Element (ls :!: TwITbl b s m arr c j x) i Source # | |
Element ls i => Element (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Split.Type data Elm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i :: Type Source # type RecElm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i :: Type Source # type Arg (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) :: Type Source # getArg :: Elm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i -> Arg (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) Source # getIdx :: Elm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i -> RunningIndex i Source # getElm :: Elm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i -> RecElm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i Source # | |
Element ls i => Element (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Split.Type data Elm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i :: Type Source # type RecElm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i :: Type Source # type Arg (ls :!: Split uId splitType (TwITbl b s m arr c j x)) :: Type Source # getArg :: Elm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i -> Arg (ls :!: Split uId splitType (TwITbl b s m arr c j x)) Source # getIdx :: Elm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i -> RunningIndex i Source # getElm :: Elm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i -> RecElm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i Source # | |
Build (TwITbl b s m arr c i x) Source # | |
(Monad m, PrimArrayOps arr i x, IndexStream i) => Axiom (TwITbl b s m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type type AxiomStream (TwITbl b s m arr c i x) :: Type Source # | |
GenBacktrackTable (TwITbl b s mF arr c i x) mF mB Source # | |
(Show c, Show (arr i x)) => Show (ITbl bo so arr c i x) Source # | |
Build (TwITblBt b s arr c i x mF mB r) Source # | |
type SplitIxTy uId True (Elm (ls :!: Split sId splitType (TwITblBt b s arr c j x mF mB r)) i) Source # | |
type SplitIxTy uId True (Elm (ls :!: Split sId splitType (TwITbl b s m arr c j x)) i) Source # | |
type IsThisSmallOrder n (ts :. TwITbl bo so m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.FillTyLvl | |
type IsThisBigOrder n (ts :. TwITbl bo so m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.FillTyLvl | |
type LeftPosTy Z (TwITbl b s m arr Z Z x) Z Source # | |
type LeftPosTy Z (TwITbl b s m arr EmptyOk Z x) Z Source # | |
type LeftPosTy Complement (TwITbl b s m arr EmptyOk (PointL O) x) (PointL C) Source # | |
Defined in ADP.Fusion.PointL.SynVar.Indices | |
type LeftPosTy Complement (TwITbl b s m arr EmptyOk (PointL I) x) (PointL C) Source # | |
Defined in ADP.Fusion.PointL.SynVar.Indices | |
type LeftPosTy Complement (TwITbl b s m arr EmptyOk (Unit O) x) (Unit C) Source # | |
Defined in ADP.Fusion.Unit.SynVar.Indices | |
type LeftPosTy Complement (TwITbl b s m arr EmptyOk (Unit I) x) (Unit C) Source # | |
Defined in ADP.Fusion.Unit.SynVar.Indices | |
type LeftPosTy Z (TwITblBt b s arr Z Z x mF mB r) Z Source # | |
type LeftPosTy Z (TwITblBt b s arr EmptyOk Z x mF mB r) Z Source # | |
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL C) Source # | |
Defined in ADP.Fusion.PointL.SynVar.Indices | |
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL C) Source # | |
Defined in ADP.Fusion.PointL.SynVar.Indices | |
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit C) Source # | |
Defined in ADP.Fusion.Unit.SynVar.Indices | |
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit C) Source # | |
Defined in ADP.Fusion.Unit.SynVar.Indices | |
data Elm (ls :!: TwITbl b s m arr c j x) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
data Elm (ls :!: TwITblBt b s arr c j x mF mB r) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
data Elm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Split.Type data Elm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i = ElmSplitBtITbl !(Proxy uId) !(CalcSplitType splitType (x, [r])) !(RunningIndex i) !(Elm ls i) !i | |
data Elm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Split.Type data Elm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i = ElmSplitITbl !(Proxy uId) !(CalcSplitType splitType x) !(RunningIndex i) !(Elm ls i) !i | |
type Arg (ls :!: TwITbl b s m arr c j x) Source # | |
type Arg (ls :!: TwITblBt b s arr c j x mF mB r) Source # | |
type Arg (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) Source # | |
Defined in ADP.Fusion.Core.SynVar.Split.Type | |
type Arg (ls :!: Split uId splitType (TwITbl b s m arr c j x)) Source # | |
Defined in ADP.Fusion.Core.SynVar.Split.Type | |
type AxiomStream (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type type AxiomStream (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) = mB [r] | |
type AxiomIx (TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType j -> j -> m [r])) Source # | |
type SmallOrderNats' (ts :. TwITbl bo so m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.FillTyLvl | |
type BigOrderNats' (ts :. TwITbl bo so m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.FillTyLvl | |
type RecElm (ls :!: TwITbl b s m arr c j x) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
type RecElm (ls :!: TwITblBt b s arr c j x mF mB r) i Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
type RecElm (ls :!: Split uId splitType (TwITblBt b s arr c j x mF mB r)) i Source # | |
type RecElm (ls :!: Split uId splitType (TwITbl b s m arr c j x)) i Source # | |
type LeftPosTy (ps :. p) (TwITbl b s m arr (eos :. EmptyOk) (us :. u) x) (is :. i) Source # | |
type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) Source # | |
type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) Source # | |
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) Source # | |
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) Source # | |
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (Unit I) x) (Unit I) Source # | |
type LeftPosTy (OLeftOf d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # | |
type LeftPosTy (OFirstLeft d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # | |
type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # | |
Defined in ADP.Fusion.PointL.SynVar.Indices | |
type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (Unit O) x) (Unit O) Source # | |
type LeftPosTy (ps :. p) (TwITblBt b s arr (eos :. EmptyOk) (us :. u) x mF mB r) (is :. i) Source # | |
type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) Source # | |
type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) Source # | |
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) Source # | |
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) Source # | |
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit I) Source # | |
type LeftPosTy (OLeftOf d) (TwITblBt s b arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # | |
type LeftPosTy (OFirstLeft d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # | |
type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # | |
Defined in ADP.Fusion.PointL.SynVar.Indices | |
type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit O) Source # | |
type Stack (TwITbl b s m arr c i x) Source # | |
type AxiomStream (TwITbl b s m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
type AxiomIx (TwITbl b s m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
type BacktrackIndex (TwITbl b s mF arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
type TermArg (TwITbl b s m arr c i x) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
data Backtrack (TwITbl b s mF arr c i x) mF mB Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type | |
type Stack (TwITblBt b s arr c i x mF mB r) Source # | |
type TermArg (TwITblBt b s arr c i x mF mB r) Source # | |
Defined in ADP.Fusion.Core.SynVar.Array.Type |
type TwITbl (b :: Nat) (s :: Nat) (m :: * -> *) arr c i x = TW (ITbl b s arr c i x) (LimitType i -> i -> m x) Source #
type TwITblBt b s arr c i x mF mB r = TW (Backtrack (TwITbl b s mF arr c i x) mF mB) (LimitType i -> i -> mB [r]) Source #