This module provides an experimental alternative to `Text.ILex.Stack` with a correctly typed parser stack.
data Stack : Bool -> (List Type -> Type) -> List Type -> TypeNil : Stack False s [](:>) : s ts -> Stack b s ts -> Stack True s [](::) : t -> Stack b s ts -> Stack False s (t :: ts)push : s [t] -> t -> Stack b s [] -> Stack True s []record DStack : (List Type -> Type) -> Type -> Type -> TypeS : Ref q Nat -> Ref q Nat -> Ref q (SnocList Position) -> Ref q (SnocList String) -> Ref q (Stack True s []) -> Ref q (Maybe (BoundedErr e)) -> Ref q ByteString -> DStack s e q.bytes_ : DStack s e q -> Ref q ByteString.col_ : DStack s e q -> Ref q Nat.error_ : DStack s e q -> Ref q (Maybe (BoundedErr e)).line_ : DStack s e q -> Ref q Nat.positions_ : DStack s e q -> Ref q (SnocList Position).stack_ : DStack s e q -> Ref q (Stack True s []).strings_ : DStack s e q -> Ref q (SnocList String).line_ : DStack s e q -> Ref q Natline_ : DStack s e q -> Ref q Nat.col_ : DStack s e q -> Ref q Natcol_ : DStack s e q -> Ref q Nat.positions_ : DStack s e q -> Ref q (SnocList Position)positions_ : DStack s e q -> Ref q (SnocList Position).strings_ : DStack s e q -> Ref q (SnocList String)strings_ : DStack s e q -> Ref q (SnocList String).stack_ : DStack s e q -> Ref q (Stack True s [])stack_ : DStack s e q -> Ref q (Stack True s []).error_ : DStack s e q -> Ref q (Maybe (BoundedErr e))error_ : DStack s e q -> Ref q (Maybe (BoundedErr e)).bytes_ : DStack s e q -> Ref q ByteStringbytes_ : DStack s e q -> Ref q ByteStringinit : Stack True s [] -> F1 q (DStack s e q)Initializes a new parser stack.
0 StateAct : Type -> (List Type -> Type) -> Bits32 -> Typedact : DStack s e q => StateAct q s r -> F1 q (Index r)dput : DStack s e q => s ts -> Cast (s ts) a => Stack b s ts -> F1 q adpush : DStack s e q => s [t] -> Cast (s [t]) a => t -> F1 q aderr : DStack s e q => s [] -> Cast (s []) a => s ts -> Stack b s ts -> F1 q a