This module provides an experimental alternative to `Text.ILex.Stack` with a correctly typed parser stack.
data Stack : Bool -> (SnocList Type -> Type) -> SnocList Type -> TypeLin : Stack False s [<](:>) : Stack b s ts -> s ts -> Stack True s [<](:<) : Stack b s ts -> t -> Stack False s (ts :< t)push : Stack b s [<] -> t -> s [<t] -> Stack True s [<]record DStack : (SnocList Type -> Type) -> Type -> Type -> TypeS : (bufSize_ : Nat) -> ByteString -> IBuffer bufSize_ -> Nat -> Nat -> Ref q (LTENat bufSize_) -> Ref q (LTENat bufSize_) -> Ref q (SnocList BytePos) -> Ref q (SnocList String) -> Ref q (Stack True s [<]) -> Ref q (Maybe (BBErr e)) -> DStack s e q.bufSize_ : DStack s e q -> Nat.curOffset_ : DStack s e q -> Nat.cur_ : ({rec:0} : DStack s e q) -> IBuffer (bufSize_ {rec:0}).error_ : DStack s e q -> Ref q (Maybe (BBErr e)).from_ : ({rec:0} : DStack s e q) -> Ref q (LTENat (bufSize_ {rec:0})).positions_ : DStack s e q -> Ref q (SnocList BytePos).prevOffset_ : DStack s e q -> Nat.prev_ : DStack s e q -> ByteString.stack_ : DStack s e q -> Ref q (Stack True s [<]).strings_ : DStack s e q -> Ref q (SnocList String).till_ : ({rec:0} : DStack s e q) -> Ref q (LTENat (bufSize_ {rec:0})).bufSize_ : DStack s e q -> NatbufSize_ : DStack s e q -> Nat.prev_ : DStack s e q -> ByteStringprev_ : DStack s e q -> ByteString.cur_ : ({rec:0} : DStack s e q) -> IBuffer (bufSize_ {rec:0})cur_ : ({rec:0} : DStack s e q) -> IBuffer (bufSize_ {rec:0}).prevOffset_ : DStack s e q -> NatprevOffset_ : DStack s e q -> Nat.curOffset_ : DStack s e q -> NatcurOffset_ : DStack s e q -> Nat.from_ : ({rec:0} : DStack s e q) -> Ref q (LTENat (bufSize_ {rec:0}))from_ : ({rec:0} : DStack s e q) -> Ref q (LTENat (bufSize_ {rec:0})).till_ : ({rec:0} : DStack s e q) -> Ref q (LTENat (bufSize_ {rec:0}))till_ : ({rec:0} : DStack s e q) -> Ref q (LTENat (bufSize_ {rec:0})).positions_ : DStack s e q -> Ref q (SnocList BytePos)positions_ : DStack s e q -> Ref q (SnocList BytePos).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 (BBErr e))error_ : DStack s e q -> Ref q (Maybe (BBErr e))init : Stack True s [<] -> (n : Nat) -> IBuffer n -> F1 q (DStack s e q)Initializes a new parser stack.
0 StateAct : Type -> (SnocList 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 adpush0 : DStack s e q => s [<] -> Cast (s [<]) a => 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 => Stack b s ts -> s ts -> F1 q a