ADPfusion-0.6.0.0: Efficient, high-level dynamic programming.

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.Core.Classes

Synopsis

Documentation

data OStatic s Source #

Instances
(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. OStatic d :: Type) S (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. OStatic d) -> S -> Int# -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (Elm S (is :. PointL O)) Source #

(Monad m, KnownNat d) => MkStream m (OStatic d :: Type) S (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (OStatic d) -> S -> Int# -> LimitType (PointL O) -> PointL O -> Stream m (Elm S (PointL O)) Source #

Monad m => MkStream m (OStatic d :: Type) S (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy (OStatic d) -> S -> Int# -> LimitType (Unit O) -> Unit O -> Stream m (Elm S (Unit O)) Source #

TermStreamContext m ps ts s x0 i0 is (PointL O) => TermStream m (ps :. OStatic d :: Type) (TermSymbol ts (Chr r x)) s (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

Methods

termStream :: Proxy (ps :. OStatic d) -> TermSymbol ts (Chr r x) -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL O) (TermArg (TermSymbol ts (Chr r x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL O) => TermStream m (ps :. OStatic d :: Type) (TermSymbol ts Deletion) s (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

Methods

termStream :: Proxy (ps :. OStatic d) -> TermSymbol ts Deletion -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL O) (TermArg (TermSymbol ts Deletion))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL O) => TermStream m (ps :. OStatic d :: Type) (TermSymbol ts (Epsilon lg)) s (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

Methods

termStream :: Proxy (ps :. OStatic d) -> TermSymbol ts (Epsilon lg) -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL O) (TermArg (TermSymbol ts (Epsilon lg)))) Source #

(TermStreamContext m ps ts s x0 i0 is (PointL O), KnownNat c) => TermStream m (ps :. OStatic d :: Type) (TermSymbol ts (MultiChr c v x)) s (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

Methods

termStream :: Proxy (ps :. OStatic d) -> TermSymbol ts (MultiChr c v x) -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL O) (TermArg (TermSymbol ts (MultiChr c v x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL O) => TermStream m (ps :. OStatic d :: Type) (TermSymbol ts Switch) s (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

Methods

termStream :: Proxy (ps :. OStatic d) -> TermSymbol ts Switch -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL O) (TermArg (TermSymbol ts Switch))) Source #

TermStaticVar (OStatic d :: Type) Switch (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

(AddIndexDenseContext ps elm x0 i0 cs c us (PointL O) is (PointL O), MinSize c) => AddIndexDense (ps :. OStatic d :: Type) elm (cs :. c) (us :. PointL O) (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. OStatic d) -> (cs :. c) -> LimitType (us :. PointL O) -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointL O) (is :. PointL O)) Source #

TermStaticVar (OStatic 0) (Epsilon Local) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

TermStaticVar (OStatic 0) (Epsilon Global) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

TermStaticVar (OStatic d :: Type) (Chr r x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

TermStaticVar (OStatic d :: Type) (MultiChr c v x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

type LeftPosTy (OStatic d) Deletion (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

type LeftPosTy (OStatic d) Switch (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

type LeftPosTy (OStatic d) (Epsilon Global) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

type LeftPosTy (OStatic d) (Chr r x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

type LeftPosTy (OStatic d) (Chr r x) (PointL O) = OStatic (d + 1)
type LeftPosTy (OStatic d) (MultiChr c v x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

type LeftPosTy (OStatic d) (MultiChr c v x) (PointL O) = OStatic (d + c)
type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) = OFirstLeft d
type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (Unit O) x) (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (Unit O) x) (Unit O) = OStatic d
type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) = OFirstLeft d
type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit O) = OStatic d

data ORightOf s Source #

Instances
(AddIndexDenseContext ps elm x0 i0 cs c us (PointL O) is (PointL O), MinSize c) => AddIndexDense (ps :. ORightOf d :: Type) elm (cs :. c) (us :. PointL O) (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. ORightOf d) -> (cs :. c) -> LimitType (us :. PointL O) -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointL O) (is :. PointL O)) Source #

data OFirstLeft s Source #

Instances
(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. OFirstLeft d :: Type) S (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. OFirstLeft d) -> S -> Int# -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (Elm S (is :. PointL O)) Source #

(Monad m, KnownNat d) => MkStream m (OFirstLeft d :: Type) S (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (OFirstLeft d) -> S -> Int# -> LimitType (PointL O) -> PointL O -> Stream m (Elm S (PointL O)) Source #

type LeftPosTy (OFirstLeft d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OFirstLeft d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) = (TypeError (Text "OFirstLeft is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)
type LeftPosTy (OFirstLeft d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OFirstLeft d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) = (TypeError (Text "OFirstLeft is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)

data OLeftOf s Source #

Instances
type LeftPosTy (OLeftOf d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OLeftOf d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) = (TypeError (Text "OLeftOf is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)
type LeftPosTy (OLeftOf d) (TwITblBt s b arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OLeftOf d) (TwITblBt s b arr EmptyOk (PointL O) x mB mF r) (PointL O) = (TypeError (Text "OLeftOf is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)

data IStatic s Source #

Instances
(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IStatic d :: Type) S (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. IStatic d) -> S -> Int# -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (Elm S (is :. PointL I)) Source #

(Monad m, KnownNat d) => MkStream m (IStatic d :: Type) S (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (IStatic d) -> S -> Int# -> LimitType (PointL I) -> PointL I -> Stream m (Elm S (PointL I)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IStatic d :: Type) S (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (ps :. IStatic d) -> S -> Int# -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (Elm S (is :. PointR I)) Source #

(Monad m, KnownNat d) => MkStream m (IStatic d :: Type) S (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (IStatic d) -> S -> Int# -> LimitType (PointR I) -> PointR I -> Stream m (Elm S (PointR I)) Source #

Monad m => MkStream m (IStatic d :: Type) S (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy (IStatic d) -> S -> Int# -> LimitType (Unit I) -> Unit I -> Stream m (Elm S (Unit I)) Source #

TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (Chr r x)) s (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (Chr r x) -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL I) (TermArg (TermSymbol ts (Chr r x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts Deletion) s (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts Deletion -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL I) (TermArg (TermSymbol ts Deletion))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (Epsilon lg)) s (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (Epsilon lg) -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL I) (TermArg (TermSymbol ts (Epsilon lg)))) Source #

(TermStreamContext m ps ts s x0 i0 is (PointL I), KnownNat c) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (MultiChr c v x)) s (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (MultiChr c v x) -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL I) (TermArg (TermSymbol ts (MultiChr c v x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (Str (Nothing :: Maybe Symbol) minSz (Nothing :: Maybe Nat) v x)) s (is :. PointL I) Source #

Note that the minSz should automatically work out due to the encoding in d.

Instance details

Defined in ADP.Fusion.PointL.Term.Str

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (Str Nothing minSz Nothing v x) -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL I) (TermArg (TermSymbol ts (Str Nothing minSz Nothing v x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts Switch) s (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts Switch -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointL I) (TermArg (TermSymbol ts Switch))) Source #

TermStreamContext m ps ts s x0 i0 is (PointR I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (Chr r x)) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (Chr r x) -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointR I) (TermArg (TermSymbol ts (Chr r x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointR I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts Deletion) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts Deletion -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointR I) (TermArg (TermSymbol ts Deletion))) Source #

TermStreamContext m ps ts s x0 i0 is (PointR I) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (Epsilon lg)) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Epsilon

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (Epsilon lg) -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointR I) (TermArg (TermSymbol ts (Epsilon lg)))) Source #

(TermStreamContext m ps ts s x0 i0 is (PointR I), KnownNat c) => TermStream m (ps :. IStatic d :: Type) (TermSymbol ts (MultiChr c v x)) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

Methods

termStream :: Proxy (ps :. IStatic d) -> TermSymbol ts (MultiChr c v x) -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointR I) (TermArg (TermSymbol ts (MultiChr c v x)))) Source #

TermStaticVar (IStatic d :: Type) Deletion (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

TermStaticVar (IStatic d :: Type) Switch (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

TermStaticVar (IStatic d :: Type) Deletion (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

TermStaticVar (IStatic d :: Type) Deletion (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.Term.Deletion

(AddIndexDenseContext ps elm x0 i0 cs c us (PointL I) is (PointL I), MinSize c) => AddIndexDense (ps :. IStatic d :: Type) elm (cs :. c) (us :. PointL I) (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. IStatic d) -> (cs :. c) -> LimitType (us :. PointL I) -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointL I) (is :. PointL I)) Source #

(AddIndexDenseContext ps elm x0 i0 cs c us (PointR I) is (PointR I), MinSize c) => AddIndexDense (ps :. IStatic d :: Type) elm (cs :. c) (us :. PointR I) (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. IStatic d) -> (cs :. c) -> LimitType (us :. PointR I) -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointR I) (is :. PointR I)) Source #

TermStaticVar (IStatic 0) (Epsilon Local) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Epsilon

TermStaticVar (IStatic 0) (Epsilon Local) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

TermStaticVar (IStatic 0) (Epsilon Global) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Epsilon

TermStaticVar (IStatic 0) (Epsilon Global) (PointL I) Source #

We assume that ε / Epsilon is ever only the single symbol (maybe apart from - / Deletion) on a tape. Hence The instance is only active in IStatic 0 cases.

Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

TermStaticVar (IStatic d :: Type) (Chr r x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

TermStaticVar (IStatic d :: Type) (Chr r x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

KnownNat c => TermStaticVar (IStatic d :: Type) (MultiChr c v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

KnownNat c => TermStaticVar (IStatic d :: Type) (MultiChr c v x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

KnownNat minSz => TermStaticVar (IStatic d :: Type) (Str (Nothing :: Maybe Symbol) minSz (Nothing :: Maybe Nat) v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Str

type LeftPosTy (IStatic d) Deletion (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

type LeftPosTy (IStatic d) Switch (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

type LeftPosTy (IStatic d) Deletion (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

type LeftPosTy (IStatic d) (Epsilon Local) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

type LeftPosTy (IStatic d) (Epsilon Global) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

type LeftPosTy (IStatic d) (Epsilon Global) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Epsilon

type LeftPosTy (IStatic d) (Chr r x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

type LeftPosTy (IStatic d) (Chr r x) (PointR I) = IStatic (d + 1)
type LeftPosTy (IStatic d) (Chr r x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

type LeftPosTy (IStatic d) (Chr r x) (PointL I) = IStatic d
type LeftPosTy (IStatic d) (MultiChr c v x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

type LeftPosTy (IStatic d) (MultiChr c v x) (PointR I) = IStatic (d + c)
type LeftPosTy (IStatic d) (MultiChr c v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

type LeftPosTy (IStatic d) (MultiChr c v x) (PointL I) = IStatic d
type LeftPosTy (IStatic d) (Str linked minSz maxSz v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Str

type LeftPosTy (IStatic d) (Str linked minSz maxSz v x) (PointL I) = IVariable d
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) = IVariable d
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) = IVariable d
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (Unit I) x) (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (Unit I) x) (Unit I) = IStatic d
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) = IVariable d
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) = IVariable d
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit I) = IStatic d

data IVariable s Source #

Instances
(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IVariable d :: Type) S (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. IVariable d) -> S -> Int# -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (Elm S (is :. PointL I)) Source #

(Monad m, KnownNat d) => MkStream m (IVariable d :: Type) S (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (IVariable d) -> S -> Int# -> LimitType (PointL I) -> PointL I -> Stream m (Elm S (PointL I)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IVariable d :: Type) S (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (ps :. IVariable d) -> S -> Int# -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (Elm S (is :. PointR I)) Source #

(Monad m, KnownNat d) => MkStream m (IVariable d :: Type) S (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (IVariable d) -> S -> Int# -> LimitType (PointR I) -> PointR I -> Stream m (Elm S (PointR I)) Source #

Monad m => MkStream m (IVariable d :: Type) S (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy (IVariable d) -> S -> Int# -> LimitType (Unit I) -> Unit I -> Stream m (Elm S (Unit I)) Source #

TermStreamContext m ps ts s x0 i0 is (PointL I) => TermStream m (ps :. IVariable d :: Type) (TermSymbol ts Deletion) s (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

TermStreamContext m ps ts s x0 i0 is (PointR I) => TermStream m (ps :. IVariable d :: Type) (TermSymbol ts (Chr r x)) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

Methods

termStream :: Proxy (ps :. IVariable d) -> TermSymbol ts (Chr r x) -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointR I) (TermArg (TermSymbol ts (Chr r x)))) Source #

TermStreamContext m ps ts s x0 i0 is (PointR I) => TermStream m (ps :. IVariable d :: Type) (TermSymbol ts Deletion) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

(TermStreamContext m ps ts s x0 i0 is (PointR I), KnownNat c) => TermStream m (ps :. IVariable d :: Type) (TermSymbol ts (MultiChr c v x)) s (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

Methods

termStream :: Proxy (ps :. IVariable d) -> TermSymbol ts (MultiChr c v x) -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (TermState s Z Z) -> Stream m (TermState s (is :. PointR I) (TermArg (TermSymbol ts (MultiChr c v x)))) Source #

TermStaticVar (IVariable d :: Type) Deletion (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

TermStaticVar (IVariable d :: Type) Deletion (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

(AddIndexDenseContext ps elm x0 i0 cs c us (PointL I) is (PointL I), MinSize c) => AddIndexDense (ps :. IVariable d :: Type) elm (cs :. c) (us :. PointL I) (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. IVariable d) -> (cs :. c) -> LimitType (us :. PointL I) -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointL I) (is :. PointL I)) Source #

TermStaticVar (IVariable d :: Type) (Chr r x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

KnownNat c => TermStaticVar (IVariable d :: Type) (MultiChr c v x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

type LeftPosTy (IVariable d) Deletion (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

type LeftPosTy (IVariable d) Switch (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

type LeftPosTy (IVariable d) Deletion (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

type LeftPosTy (IVariable d) (Chr r x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

type LeftPosTy (IVariable d) (Chr r x) (PointR I) = IVariable (d + 1)
type LeftPosTy (IVariable d) (MultiChr c v x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

type LeftPosTy (IVariable d) (MultiChr c v x) (PointR I) = IVariable (d + c)
type LeftPosTy (IVariable d) (Str linked minSz maxSz v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Str

type LeftPosTy (IVariable d) (Str linked minSz maxSz v x) (PointL I) = IVariable d
type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) = IVariable d
type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) = IVariable d
type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) = IVariable d
type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) = IVariable d

data Complement Source #

Instances
Monad m => MkStream m Complement S (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Monad m => MkStream m Complement S (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy Complement -> S -> Int# -> LimitType (Unit C) -> Unit C -> Stream m (Elm S (Unit C)) Source #

(Monad m, MkStream m ps S is) => MkStream m (ps :. Complement :: Type) S (is :. PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. Complement) -> S -> Int# -> LimitType (is :. PointL C) -> (is :. PointL C) -> Stream m (Elm S (is :. PointL C)) Source #

AddIndexDenseContext ps elm x0 i0 cs c us (PointL O) is (PointL C) => AddIndexDense (ps :. Complement :: Type) elm (cs :. c) (us :. PointL O) (is :. PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. Complement) -> (cs :. c) -> LimitType (us :. PointL O) -> LimitType (is :. PointL C) -> (is :. PointL C) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointL O) (is :. PointL C)) Source #

AddIndexDenseContext ps elm x0 i0 cs c us (PointL I) is (PointL C) => AddIndexDense (ps :. Complement :: Type) elm (cs :. c) (us :. PointL I) (is :. PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

Methods

addIndexDenseGo :: Monad m => Proxy (ps :. Complement) -> (cs :. c) -> LimitType (us :. PointL I) -> LimitType (is :. PointL C) -> (is :. PointL C) -> Stream m (SvState elm Z Z) -> Stream m (SvState elm (us :. PointL I) (is :. PointL C)) Source #

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (PointL O) x) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (PointL I) x) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (Unit O) x) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (Unit I) x) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL C) = Complement
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL C) = Complement
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit C) = Complement
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit C) = Complement

data ExtComplementContext s Source #

Needed for structures that have long-range interactions and "expand", like sets around edge boundaries: set edge set. requires the sets to be connected.

Constructors

CStatic s 
CVariable s 

type family InitialContext ix :: * Source #

For each index type ix, initialContext (Proxy ∷ ix) yields the initial context from which to start up rules.

TODO turn into type family and make initialContext a global function.

Instances
type InitialContext Z Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

type InitialContext (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

type InitialContext (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

type InitialContext (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

type InitialContext (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

type InitialContext (PointR O) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

type InitialContext (PointR C) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

type InitialContext (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

type InitialContext (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

type InitialContext (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

type InitialContext (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

data family RunningIndex i :: * Source #

While we ostensibly use an index of type i we typically do not need every element of an i. For example, when looking at Subwords, we do not need both element of j:.k but only k. Also, inside grammars do need fewer moving indices than outside grammars.

Instances
Show (RunningIndex Z) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Generic (RunningIndex (PointR I)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Associated Types

type Rep (RunningIndex (PointR I)) :: Type -> Type #

Generic (RunningIndex (PointR O)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Associated Types

type Rep (RunningIndex (PointR O)) :: Type -> Type #

Generic (RunningIndex (PointR C)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Associated Types

type Rep (RunningIndex (PointR C)) :: Type -> Type #

Generic (RunningIndex (PointL I)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Associated Types

type Rep (RunningIndex (PointL I)) :: Type -> Type #

Generic (RunningIndex (PointL O)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Associated Types

type Rep (RunningIndex (PointL O)) :: Type -> Type #

Generic (RunningIndex (PointL C)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Associated Types

type Rep (RunningIndex (PointL C)) :: Type -> Type #

Generic (RunningIndex Z) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Associated Types

type Rep (RunningIndex Z) :: Type -> Type #

Generic (RunningIndex (is :. i)) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Associated Types

type Rep (RunningIndex (is :. i)) :: Type -> Type #

Methods

from :: RunningIndex (is :. i) -> Rep (RunningIndex (is :. i)) x #

to :: Rep (RunningIndex (is :. i)) x -> RunningIndex (is :. i) #

NFData (RunningIndex (PointR I)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

rnf :: RunningIndex (PointR I) -> () #

NFData (RunningIndex (PointL I)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

rnf :: RunningIndex (PointL I) -> () #

NFData (RunningIndex Z) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Methods

rnf :: RunningIndex Z -> () #

(NFData (RunningIndex is), NFData (RunningIndex i)) => NFData (RunningIndex (is :. i)) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Methods

rnf :: RunningIndex (is :. i) -> () #

GetIndexGo (RunningIndex Z) (RunningIndex Z) EQ Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

Associated Types

type ResolvedIx (RunningIndex Z) (RunningIndex Z) EQ :: Type Source #

GetIndexGo (RunningIndex ix) (RunningIndex Z) (CmpNat (ToNat (RunningIndex ix)) (ToNat (RunningIndex Z))) => GetIndexGo (RunningIndex (ix :. i)) (RunningIndex Z) GT Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

Associated Types

type ResolvedIx (RunningIndex (ix :. i)) (RunningIndex Z) GT :: Type Source #

GetIndexGo (RunningIndex ix) (RunningIndex (my :. m)) (CmpNat (ToNat (RunningIndex ix)) (ToNat (RunningIndex (my :. m)))) => GetIndexGo (RunningIndex (ix :. i)) (RunningIndex (my :. m) :: Type) GT Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

Associated Types

type ResolvedIx (RunningIndex (ix :. i)) (RunningIndex (my :. m)) GT :: Type Source #

Methods

getIndexGo :: RunningIndex (ix :. i) -> Proxy (RunningIndex (my :. m)) -> Proxy GT -> ResolvedIx (RunningIndex (ix :. i)) (RunningIndex (my :. m)) GT Source #

GetIndexGo (RunningIndex (ix :. i)) (RunningIndex (my :. m) :: Type) EQ Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

Associated Types

type ResolvedIx (RunningIndex (ix :. i)) (RunningIndex (my :. m)) EQ :: Type Source #

Methods

getIndexGo :: RunningIndex (ix :. i) -> Proxy (RunningIndex (my :. m)) -> Proxy EQ -> ResolvedIx (RunningIndex (ix :. i)) (RunningIndex (my :. m)) EQ Source #

data RunningIndex Z Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

type Rep (RunningIndex (PointR I)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

type Rep (RunningIndex (PointR I)) = D1 (MetaData "RunningIndex" "ADP.Fusion.PointR.Core" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" True) (C1 (MetaCons "RiPrI" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
type Rep (RunningIndex (PointR O)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

type Rep (RunningIndex (PointR O)) = D1 (MetaData "RunningIndex" "ADP.Fusion.PointR.Core" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" False) (C1 (MetaCons "RiPrO" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int)))
type Rep (RunningIndex (PointR C)) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

type Rep (RunningIndex (PointR C)) = D1 (MetaData "RunningIndex" "ADP.Fusion.PointR.Core" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" True) (C1 (MetaCons "RiPrC" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
type Rep (RunningIndex (PointL I)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

type Rep (RunningIndex (PointL I)) = D1 (MetaData "RunningIndex" "ADP.Fusion.PointL.Core" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" True) (C1 (MetaCons "RiPlI" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
type Rep (RunningIndex (PointL O)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

type Rep (RunningIndex (PointL O)) = D1 (MetaData "RunningIndex" "ADP.Fusion.PointL.Core" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" False) (C1 (MetaCons "RiPlO" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int)))
type Rep (RunningIndex (PointL C)) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

type Rep (RunningIndex (PointL C)) = D1 (MetaData "RunningIndex" "ADP.Fusion.PointL.Core" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" True) (C1 (MetaCons "RiPlC" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)))
type Rep (RunningIndex Z) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

type Rep (RunningIndex Z) = D1 (MetaData "RunningIndex" "ADP.Fusion.Core.Classes" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" False) (C1 (MetaCons "RiZ" PrefixI False) (U1 :: Type -> Type))
type Rep (RunningIndex (is :. i)) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

type Rep (RunningIndex (is :. i)) = D1 (MetaData "RunningIndex" "ADP.Fusion.Core.Classes" "ADPfusion-0.6.0.0-4IFRXlyJait74rLMOZ899H" False) (C1 (MetaCons ":.:" (InfixI LeftAssociative 9) False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (RunningIndex is)) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 (RunningIndex i))))
type ToNat (RunningIndex Z) Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

type ToNat (RunningIndex Z) = 0
type ToNat (RunningIndex (is :. i)) Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

type ToNat (RunningIndex (is :. i)) = ToNat (RunningIndex is) + 1
type ResolvedIx (RunningIndex Z) (RunningIndex Z) EQ Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

type ResolvedIx (RunningIndex (ix :. i)) (RunningIndex (my :. m) :: Type) EQ Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

type ResolvedIx (RunningIndex (ix :. i)) (RunningIndex Z) GT Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

type ResolvedIx (RunningIndex (ix :. i)) (RunningIndex (my :. m) :: Type) GT Source # 
Instance details

Defined in ADP.Fusion.Core.TyLvlIx

data RunningIndex (Unit t) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

newtype RunningIndex (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

data RunningIndex (PointR O) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

newtype RunningIndex (PointR C) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

newtype RunningIndex (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

data RunningIndex (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

newtype RunningIndex (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

data RunningIndex (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

data RunningIndex (is :. i) = !(RunningIndex is) :.: !(RunningIndex i)

class Element (x :: *) i where Source #

During construction of the stream, we need to extract individual elements from symbols in production rules. An element in a stream is fixed by both, the type x of the actual argument we want to grab (say individual characters we parse from an input) and the type of indices i we use.

Elm data constructors are all eradicated during fusion and should never show up in CORE.

Associated Types

data Elm x i :: * Source #

type RecElm x i :: * Source #

type Arg x :: * Source #

Methods

getArg :: Elm x i -> Arg x Source #

getIdx :: Elm x i -> RunningIndex i Source #

getElm :: Elm x i -> RecElm x i Source #

Instances
Element S i Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Associated Types

data Elm S i :: Type Source #

type RecElm S i :: Type Source #

type Arg S :: Type Source #

Methods

getArg :: Elm S i -> Arg S Source #

getIdx :: Elm S i -> RunningIndex i Source #

getElm :: Elm S i -> RecElm S i Source #

(s ~ Elm x0 i, Element x0 i) => Element (Term1 s) (Z :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

Associated Types

data Elm (Term1 s) (Z :. i) :: Type Source #

type RecElm (Term1 s) (Z :. i) :: Type Source #

type Arg (Term1 s) :: Type Source #

Methods

getArg :: Elm (Term1 s) (Z :. i) -> Arg (Term1 s) Source #

getIdx :: Elm (Term1 s) (Z :. i) -> RunningIndex (Z :. i) Source #

getElm :: Elm (Term1 s) (Z :. i) -> RecElm (Term1 s) (Z :. i) Source #

(s ~ Elm x0 i, Element x0 i) => Element (SynVar1 s) (Z :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Indices

Associated Types

data Elm (SynVar1 s) (Z :. i) :: Type Source #

type RecElm (SynVar1 s) (Z :. i) :: Type Source #

type Arg (SynVar1 s) :: Type Source #

Methods

getArg :: Elm (SynVar1 s) (Z :. i) -> Arg (SynVar1 s) Source #

getIdx :: Elm (SynVar1 s) (Z :. i) -> RunningIndex (Z :. i) Source #

getElm :: Elm (SynVar1 s) (Z :. i) -> RecElm (SynVar1 s) (Z :. i) Source #

Element ls i => Element (ls :!: TermSymbol a b) i Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

Associated Types

data Elm (ls :!: TermSymbol a b) i :: Type Source #

type RecElm (ls :!: TermSymbol a b) i :: Type Source #

type Arg (ls :!: TermSymbol a b) :: Type Source #

Methods

getArg :: Elm (ls :!: TermSymbol a b) i -> Arg (ls :!: TermSymbol a b) Source #

getIdx :: Elm (ls :!: TermSymbol a b) i -> RunningIndex i Source #

getElm :: Elm (ls :!: TermSymbol a b) i -> RecElm (ls :!: TermSymbol a b) i Source #

Element ls i => Element (ls :!: Test v x) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Test

Associated Types

data Elm (ls :!: Test v x) i :: Type Source #

type RecElm (ls :!: Test v x) i :: Type Source #

type Arg (ls :!: Test v x) :: Type Source #

Methods

getArg :: Elm (ls :!: Test v x) i -> Arg (ls :!: Test v x) Source #

getIdx :: Elm (ls :!: Test v x) i -> RunningIndex i Source #

getElm :: Elm (ls :!: Test v x) i -> RecElm (ls :!: Test v x) i Source #

Element ls i => Element (ls :!: Switch) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Switch

Associated Types

data Elm (ls :!: Switch) i :: Type Source #

type RecElm (ls :!: Switch) i :: Type Source #

type Arg (ls :!: Switch) :: Type Source #

Methods

getArg :: Elm (ls :!: Switch) i -> Arg (ls :!: Switch) Source #

getIdx :: Elm (ls :!: Switch) i -> RunningIndex i Source #

getElm :: Elm (ls :!: Switch) i -> RecElm (ls :!: Switch) i Source #

(Element ls i, Vector v x) => Element (ls :!: Str linked minSz maxSz v x) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Str

Associated Types

data Elm (ls :!: Str linked minSz maxSz v x) i :: Type Source #

type RecElm (ls :!: Str linked minSz maxSz v x) i :: Type Source #

type Arg (ls :!: Str linked minSz maxSz v x) :: Type Source #

Methods

getArg :: Elm (ls :!: Str linked minSz maxSz v x) i -> Arg (ls :!: Str linked minSz maxSz v x) Source #

getIdx :: Elm (ls :!: Str linked minSz maxSz v x) i -> RunningIndex i Source #

getElm :: Elm (ls :!: Str linked minSz maxSz v x) i -> RecElm (ls :!: Str linked minSz maxSz v x) i Source #

Element ls i => Element (ls :!: PeekIndex i) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.PeekIndex

Associated Types

data Elm (ls :!: PeekIndex i) i :: Type Source #

type RecElm (ls :!: PeekIndex i) i :: Type Source #

type Arg (ls :!: PeekIndex i) :: Type Source #

Methods

getArg :: Elm (ls :!: PeekIndex i) i -> Arg (ls :!: PeekIndex i) Source #

getIdx :: Elm (ls :!: PeekIndex i) i -> RunningIndex i Source #

getElm :: Elm (ls :!: PeekIndex i) i -> RecElm (ls :!: PeekIndex i) i Source #

Element ls i => Element (ls :!: MultiChr c v x) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.MultiChr

Associated Types

data Elm (ls :!: MultiChr c v x) i :: Type Source #

type RecElm (ls :!: MultiChr c v x) i :: Type Source #

type Arg (ls :!: MultiChr c v x) :: Type Source #

Methods

getArg :: Elm (ls :!: MultiChr c v x) i -> Arg (ls :!: MultiChr c v x) Source #

getIdx :: Elm (ls :!: MultiChr c v x) i -> RunningIndex i Source #

getElm :: Elm (ls :!: MultiChr c v x) i -> RecElm (ls :!: MultiChr c v x) i Source #

Element ls i => Element (ls :!: Epsilon lg) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Epsilon

Associated Types

data Elm (ls :!: Epsilon lg) i :: Type Source #

type RecElm (ls :!: Epsilon lg) i :: Type Source #

type Arg (ls :!: Epsilon lg) :: Type Source #

Methods

getArg :: Elm (ls :!: Epsilon lg) i -> Arg (ls :!: Epsilon lg) Source #

getIdx :: Elm (ls :!: Epsilon lg) i -> RunningIndex i Source #

getElm :: Elm (ls :!: Epsilon lg) i -> RecElm (ls :!: Epsilon lg) i Source #

Element ls i => Element (ls :!: Edge) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Edge

Associated Types

data Elm (ls :!: Edge) i :: Type Source #

type RecElm (ls :!: Edge) i :: Type Source #

type Arg (ls :!: Edge) :: Type Source #

Methods

getArg :: Elm (ls :!: Edge) i -> Arg (ls :!: Edge) Source #

getIdx :: Elm (ls :!: Edge) i -> RunningIndex i Source #

getElm :: Elm (ls :!: Edge) i -> RecElm (ls :!: Edge) i Source #

Element ls i => Element (ls :!: Deletion) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Deletion

Associated Types

data Elm (ls :!: Deletion) i :: Type Source #

type RecElm (ls :!: Deletion) i :: Type Source #

type Arg (ls :!: Deletion) :: Type Source #

Element ls i => Element (ls :!: Chr r x) i Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Chr

Associated Types

data Elm (ls :!: Chr r x) i :: Type Source #

type RecElm (ls :!: Chr r x) i :: Type Source #

type Arg (ls :!: Chr r x) :: Type Source #

Methods

getArg :: Elm (ls :!: Chr r x) i -> Arg (ls :!: Chr r x) Source #

getIdx :: Elm (ls :!: Chr r x) i -> RunningIndex i Source #

getElm :: Elm (ls :!: Chr r x) i -> RecElm (ls :!: Chr r x) i Source #

Element ls i => Element (ls :!: TwIRecBt c u x mF mB r) i Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Recursive.Type

Associated Types

data Elm (ls :!: TwIRecBt c u x mF mB r) i :: Type Source #

type RecElm (ls :!: TwIRecBt c u x mF mB r) i :: Type Source #

type Arg (ls :!: TwIRecBt c u x mF mB r) :: Type Source #

Methods

getArg :: Elm (ls :!: TwIRecBt c u x mF mB r) i -> Arg (ls :!: TwIRecBt c u x mF mB r) Source #

getIdx :: Elm (ls :!: TwIRecBt c u x mF mB r) i -> RunningIndex i Source #

getElm :: Elm (ls :!: TwIRecBt c u x mF mB r) i -> RecElm (ls :!: TwIRecBt c u x mF mB r) i Source #

Element ls i => Element (ls :!: TwIRec m c u x) i Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Recursive.Type

Associated Types

data Elm (ls :!: TwIRec m c u x) i :: Type Source #

type RecElm (ls :!: TwIRec m c u x) i :: Type Source #

type Arg (ls :!: TwIRec m c u x) :: Type Source #

Methods

getArg :: Elm (ls :!: TwIRec m c u x) i -> Arg (ls :!: TwIRec m c u x) Source #

getIdx :: Elm (ls :!: TwIRec m c u x) i -> RunningIndex i Source #

getElm :: Elm (ls :!: TwIRec m c u x) i -> RecElm (ls :!: TwIRec m c u x) i Source #

Element ls i => Element (ls :!: TwITblBt b s arr c j x mF mB r) i Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

Associated Types

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 #

Methods

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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

Associated Types

data Elm (ls :!: TwITbl b s m arr c j x) i :: Type Source #

type RecElm (ls :!: TwITbl b s m arr c j x) i :: Type Source #

type Arg (ls :!: TwITbl b s m arr c j x) :: Type Source #

Methods

getArg :: Elm (ls :!: TwITbl b s m arr c j x) i -> Arg (ls :!: TwITbl b s m arr c j x) Source #

getIdx :: Elm (ls :!: TwITbl b s m arr c j x) i -> RunningIndex i Source #

getElm :: Elm (ls :!: TwITbl b s m arr c j x) i -> RecElm (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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Split.Type

Associated Types

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 #

Methods

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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Split.Type

Associated Types

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 #

Methods

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 #

class Monad m => MkStream m pos sym ix where Source #

mkStream creates the actual stream of elements (Elm) that will be fed to functions on the left of the (<<<) operator. Streams work over all monads and are specialized for each combination of arguments x and indices i.

Methods

mkStream Source #

Arguments

:: Proxy pos

Fix staticvariable... depending on position in r.h.s. of rule.

-> sym

the symbol type (syntactic variable with or with memoization, terminal types like char, string, etc)

-> Int#

guard system for stopping execution of rule

-> LimitType ix

upper limit of index i, using the specialized LimitType for type i.

-> ix

the current index i

-> Stream m (Elm sym ix)

resulting stream of elements

Instances
Monad m => MkStream m Z S Z Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

Methods

mkStream :: Proxy Z -> S -> Int# -> LimitType Z -> Z -> Stream m (Elm S Z) Source #

Monad m => MkStream m Complement S (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Monad m => MkStream m Complement S (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy Complement -> S -> Int# -> LimitType (Unit C) -> Unit C -> Stream m (Elm S (Unit C)) Source #

(Monad m, MkStream m posLeft ls i, Element ls i, TermStaticVar pos (TermSymbol a b) i, TermStream m pos (TermSymbol a b) (Elm ls i) i, posLeft ~ LeftPosTy pos (TermSymbol a b) i) => MkStream m (pos :: Type) (ls :!: TermSymbol a b) i Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

Methods

mkStream :: Proxy pos -> (ls :!: TermSymbol a b) -> Int# -> LimitType i -> i -> Stream m (Elm (ls :!: TermSymbol a b) i) Source #

(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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array

Methods

mkStream :: Proxy pos -> (ls :!: TwITblBt b s arr c u x mF mB r) -> Int# -> LimitType (i O) -> i O -> Stream mB (Elm (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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array

Methods

mkStream :: Proxy pos -> (ls :!: TwITbl b s m arr c u x) -> Int# -> LimitType (i O) -> i O -> Stream m (Elm (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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array

Methods

mkStream :: Proxy pos -> (ls :!: TwITblBt b s arr c u x mF mB r) -> Int# -> LimitType (i I) -> i I -> Stream mB (Elm (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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array

Methods

mkStream :: Proxy pos -> (ls :!: TwITbl b s m arr c u x) -> Int# -> LimitType (i I) -> i I -> Stream m (Elm (ls :!: TwITbl b s m arr c u x) (i I)) Source #

(TermStream m (Z :. pos) (TermSymbol M (Chr r x)) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos (Chr r x) (PointL i), TermStaticVar pos (Chr r x) (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: Chr r x) (PointL i) Source #

First try in getting this right with a termStream.

TODO use PointL i since this is probably the same for all single-tape instances with ElmChr.

TODO it might even be possible to auto-generate this code via TH.

Instance details

Defined in ADP.Fusion.PointL.Term.Chr

Methods

mkStream :: Proxy pos -> (ls :!: Chr r x) -> Int# -> LimitType (PointL i) -> PointL i -> Stream m (Elm (ls :!: Chr r x) (PointL i)) Source #

(TermStream m (Z :. pos) (TermSymbol M Deletion) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos Deletion (PointL i), TermStaticVar pos Deletion (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: Deletion) (PointL i) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

Methods

mkStream :: Proxy pos -> (ls :!: Deletion) -> Int# -> LimitType (PointL i) -> PointL i -> Stream m (Elm (ls :!: Deletion) (PointL i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (Epsilon lg)) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos (Epsilon lg) (PointL i), TermStaticVar pos (Epsilon lg) (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: Epsilon lg) (PointL i) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

Methods

mkStream :: Proxy pos -> (ls :!: Epsilon lg) -> Int# -> LimitType (PointL i) -> PointL i -> Stream m (Elm (ls :!: Epsilon lg) (PointL i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (MultiChr c v x)) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos (MultiChr c v x) (PointL i), TermStaticVar pos (MultiChr c v x) (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: MultiChr c v x) (PointL i) Source #

First try in getting this right with a termStream.

TODO use PointL i since this is probably the same for all single-tape instances with ElmChr.

TODO it might even be possible to auto-generate this code via TH.

Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

Methods

mkStream :: Proxy pos -> (ls :!: MultiChr c v x) -> Int# -> LimitType (PointL i) -> PointL i -> Stream m (Elm (ls :!: MultiChr c v x) (PointL i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (Str linked minSz maxSz v x)) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos (Str linked minSz maxSz v x) (PointL i), TermStaticVar pos (Str linked minSz maxSz v x) (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: Str linked minSz maxSz v x) (PointL i) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Str

Methods

mkStream :: Proxy pos -> (ls :!: Str linked minSz maxSz v x) -> Int# -> LimitType (PointL i) -> PointL i -> Stream m (Elm (ls :!: Str linked minSz maxSz v x) (PointL i)) Source #

(TermStream m (Z :. pos) (TermSymbol M Switch) (Elm (Term1 (Elm ls (PointL i))) (Z :. PointL i)) (Z :. PointL i), posLeft ~ LeftPosTy pos Switch (PointL i), TermStaticVar pos Switch (PointL i), MkStream m posLeft ls (PointL i)) => MkStream m (pos :: Type) (ls :!: Switch) (PointL i) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

Methods

mkStream :: Proxy pos -> (ls :!: Switch) -> Int# -> LimitType (PointL i) -> PointL i -> Stream m (Elm (ls :!: Switch) (PointL i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (Chr r x)) (Elm (Term1 (Elm ls (PointR i))) (Z :. PointR i)) (Z :. PointR i), posLeft ~ LeftPosTy pos (Chr r x) (PointR i), TermStaticVar pos (Chr r x) (PointR i), MkStream m posLeft ls (PointR i)) => MkStream m (pos :: Type) (ls :!: Chr r x) (PointR i) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

Methods

mkStream :: Proxy pos -> (ls :!: Chr r x) -> Int# -> LimitType (PointR i) -> PointR i -> Stream m (Elm (ls :!: Chr r x) (PointR i)) Source #

(TermStream m (Z :. pos) (TermSymbol M Deletion) (Elm (Term1 (Elm ls (PointR i))) (Z :. PointR i)) (Z :. PointR i), posLeft ~ LeftPosTy pos Deletion (PointR i), TermStaticVar pos Deletion (PointR i), MkStream m posLeft ls (PointR i)) => MkStream m (pos :: Type) (ls :!: Deletion) (PointR i) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

Methods

mkStream :: Proxy pos -> (ls :!: Deletion) -> Int# -> LimitType (PointR i) -> PointR i -> Stream m (Elm (ls :!: Deletion) (PointR i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (Epsilon lg)) (Elm (Term1 (Elm ls (PointR i))) (Z :. PointR i)) (Z :. PointR i), posLeft ~ LeftPosTy pos (Epsilon lg) (PointR i), TermStaticVar pos (Epsilon lg) (PointR i), MkStream m posLeft ls (PointR i)) => MkStream m (pos :: Type) (ls :!: Epsilon lg) (PointR i) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Epsilon

Methods

mkStream :: Proxy pos -> (ls :!: Epsilon lg) -> Int# -> LimitType (PointR i) -> PointR i -> Stream m (Elm (ls :!: Epsilon lg) (PointR i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (MultiChr c v x)) (Elm (Term1 (Elm ls (PointR i))) (Z :. PointR i)) (Z :. PointR i), posLeft ~ LeftPosTy pos (MultiChr c v x) (PointR i), TermStaticVar pos (MultiChr c v x) (PointR i), MkStream m posLeft ls (PointR i)) => MkStream m (pos :: Type) (ls :!: MultiChr c v x) (PointR i) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

Methods

mkStream :: Proxy pos -> (ls :!: MultiChr c v x) -> Int# -> LimitType (PointR i) -> PointR i -> Stream m (Elm (ls :!: MultiChr c v x) (PointR i)) Source #

(TermStream m (Z :. pos) (TermSymbol M Deletion) (Elm (Term1 (Elm ls (Unit i))) (Z :. Unit i)) (Z :. Unit i), posLeft ~ LeftPosTy pos Deletion (Unit i), TermStaticVar pos Deletion (Unit i), MkStream m posLeft ls (Unit i)) => MkStream m (pos :: Type) (ls :!: Deletion) (Unit i) Source # 
Instance details

Defined in ADP.Fusion.Unit.Term.Deletion

Methods

mkStream :: Proxy pos -> (ls :!: Deletion) -> Int# -> LimitType (Unit i) -> Unit i -> Stream m (Elm (ls :!: Deletion) (Unit i)) Source #

(TermStream m (Z :. pos) (TermSymbol M (Epsilon lg)) (Elm (Term1 (Elm ls (Unit i))) (Z :. Unit i)) (Z :. Unit i), posLeft ~ LeftPosTy pos (Epsilon lg) (Unit i), TermStaticVar pos (Epsilon lg) (Unit i), MkStream m posLeft ls (Unit i)) => MkStream m (pos :: Type) (ls :!: Epsilon lg) (Unit i) Source # 
Instance details

Defined in ADP.Fusion.Unit.Term.Epsilon

Methods

mkStream :: Proxy pos -> (ls :!: Epsilon lg) -> Int# -> LimitType (Unit i) -> Unit i -> Stream m (Elm (ls :!: Epsilon lg) (Unit i)) Source #

(Monad m, MkStream m ps S is) => MkStream m (ps :. Complement :: Type) S (is :. PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. Complement) -> S -> Int# -> LimitType (is :. PointL C) -> (is :. PointL C) -> Stream m (Elm S (is :. PointL C)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. OFirstLeft d :: Type) S (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. OFirstLeft d) -> S -> Int# -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (Elm S (is :. PointL O)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. OStatic d :: Type) S (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. OStatic d) -> S -> Int# -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (Elm S (is :. PointL O)) Source #

(Monad m, KnownNat d) => MkStream m (OFirstLeft d :: Type) S (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (OFirstLeft d) -> S -> Int# -> LimitType (PointL O) -> PointL O -> Stream m (Elm S (PointL O)) Source #

(Monad m, KnownNat d) => MkStream m (OStatic d :: Type) S (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (OStatic d) -> S -> Int# -> LimitType (PointL O) -> PointL O -> Stream m (Elm S (PointL O)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IVariable d :: Type) S (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. IVariable d) -> S -> Int# -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (Elm S (is :. PointL I)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IStatic d :: Type) S (is :. PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. IStatic d) -> S -> Int# -> LimitType (is :. PointL I) -> (is :. PointL I) -> Stream m (Elm S (is :. PointL I)) Source #

(Monad m, KnownNat d) => MkStream m (IVariable d :: Type) S (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (IVariable d) -> S -> Int# -> LimitType (PointL I) -> PointL I -> Stream m (Elm S (PointL I)) Source #

(Monad m, KnownNat d) => MkStream m (IStatic d :: Type) S (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (IStatic d) -> S -> Int# -> LimitType (PointL I) -> PointL I -> Stream m (Elm S (PointL I)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IVariable d :: Type) S (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (ps :. IVariable d) -> S -> Int# -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (Elm S (is :. PointR I)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. IStatic d :: Type) S (is :. PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (ps :. IStatic d) -> S -> Int# -> LimitType (is :. PointR I) -> (is :. PointR I) -> Stream m (Elm S (is :. PointR I)) Source #

(Monad m, KnownNat d) => MkStream m (IVariable d :: Type) S (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (IVariable d) -> S -> Int# -> LimitType (PointR I) -> PointR I -> Stream m (Elm S (PointR I)) Source #

(Monad m, KnownNat d) => MkStream m (IStatic d :: Type) S (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Core

Methods

mkStream :: Proxy (IStatic d) -> S -> Int# -> LimitType (PointR I) -> PointR I -> Stream m (Elm S (PointR I)) Source #

Monad m => MkStream m (OStatic d :: Type) S (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy (OStatic d) -> S -> Int# -> LimitType (Unit O) -> Unit O -> Stream m (Elm S (Unit O)) Source #

Monad m => MkStream m (IVariable d :: Type) S (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy (IVariable d) -> S -> Int# -> LimitType (Unit I) -> Unit I -> Stream m (Elm S (Unit I)) Source #

Monad m => MkStream m (IStatic d :: Type) S (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy (IStatic d) -> S -> Int# -> LimitType (Unit I) -> Unit I -> Stream m (Elm S (Unit 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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

Methods

mkStream :: Proxy (ps :. p) -> (ls :!: TwITblBt b s arr (cs :. c) (us :. u) x mF mB r) -> Int# -> LimitType (is :. i) -> (is :. i) -> Stream mB (Elm (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 # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

Methods

mkStream :: Proxy (ps :. p) -> (ls :!: TwITbl b s m arr (cs :. c) (us :. u) x) -> Int# -> LimitType (is :. i) -> (is :. i) -> Stream m (Elm (ls :!: TwITbl b s m arr (cs :. c) (us :. u) x) (is :. i)) Source #

(Applicative mB, Monad mB, pos ~ (ps :. p), posLeft ~ LeftPosTy pos (TwIRecBt (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)) => MkStream mB (ps :. p :: Type :. Type) (ls :!: TwIRecBt (cs :. c) (us :. u) x mF mB r) (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Recursive.Type

Methods

mkStream :: Proxy (ps :. p) -> (ls :!: TwIRecBt (cs :. c) (us :. u) x mF mB r) -> Int# -> LimitType (is :. i) -> (is :. i) -> Stream mB (Elm (ls :!: TwIRecBt (cs :. c) (us :. u) x mF mB r) (is :. i)) Source #

(Functor m, Monad m, pos ~ (ps :. p), posLeft ~ LeftPosTy pos (TwIRec m (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)) => MkStream m (ps :. p :: Type :. Type) (ls :!: TwIRec m (cs :. c) (us :. u) x) (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Recursive.Type

Methods

mkStream :: Proxy (ps :. p) -> (ls :!: TwIRec m (cs :. c) (us :. u) x) -> Int# -> LimitType (is :. i) -> (is :. i) -> Stream m (Elm (ls :!: TwIRec m (cs :. c) (us :. u) x) (is :. i)) Source #

type family LeftPosTy (pos :: *) sym ix :: * Source #

This type family yields for a given positional type posty ∷ k, the current symbol type symty and index type ix the next-left positional type within the same kind k Keeping within the same kind should prevent accidental switching from Inside to Outside or similar bugs.

Instances
type LeftPosTy Z M Z Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

type LeftPosTy Z M Z = Z
type LeftPosTy Z (TwITbl b s m arr Z Z x) Z Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

type LeftPosTy Z (TwITbl b s m arr Z Z x) Z = Z
type LeftPosTy Z (TwITbl b s m arr EmptyOk Z x) Z Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

type LeftPosTy Z (TwITbl b s m arr EmptyOk Z x) Z = Z
type LeftPosTy Complement (TwITbl b s m arr EmptyOk (PointL O) x) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (PointL I) x) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (Unit O) x) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITbl b s m arr EmptyOk (Unit I) x) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Z (TwITblBt b s arr Z Z x mF mB r) Z Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

type LeftPosTy Z (TwITblBt b s arr Z Z x mF mB r) Z = Z
type LeftPosTy Z (TwITblBt b s arr EmptyOk Z x mF mB r) Z Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

type LeftPosTy Z (TwITblBt b s arr EmptyOk Z x mF mB r) Z = Z
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL C) = Complement
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL C) = Complement
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit C) = Complement
type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy Complement (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit C) = Complement
type LeftPosTy (IVariable d) Deletion (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

type LeftPosTy (IVariable d) Switch (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

type LeftPosTy (IVariable d) Deletion (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

type LeftPosTy (IStatic d) Deletion (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

type LeftPosTy (IStatic d) Switch (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

type LeftPosTy (IStatic d) Deletion (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Deletion

type LeftPosTy (OStatic d) Deletion (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Deletion

type LeftPosTy (OStatic d) Switch (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Switch

type LeftPosTy (IStatic d) (Epsilon Local) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

type LeftPosTy (IStatic d) (Epsilon Global) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

type LeftPosTy (IStatic d) (Epsilon Global) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Epsilon

type LeftPosTy (OStatic d) (Epsilon Global) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Epsilon

type LeftPosTy (ps :. p) (TermSymbol a b) (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

type LeftPosTy (ps :. p) (TermSymbol a b) (is :. i) = LeftPosTy ps a is :. LeftPosTy p b i
type LeftPosTy (IVariable d) (Chr r x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

type LeftPosTy (IVariable d) (Chr r x) (PointR I) = IVariable (d + 1)
type LeftPosTy (IStatic d) (Chr r x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.Chr

type LeftPosTy (IStatic d) (Chr r x) (PointR I) = IStatic (d + 1)
type LeftPosTy (IStatic d) (Chr r x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

type LeftPosTy (IStatic d) (Chr r x) (PointL I) = IStatic d
type LeftPosTy (OStatic d) (Chr r x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Chr

type LeftPosTy (OStatic d) (Chr r x) (PointL O) = OStatic (d + 1)
type LeftPosTy (IVariable d) (MultiChr c v x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

type LeftPosTy (IVariable d) (MultiChr c v x) (PointR I) = IVariable (d + c)
type LeftPosTy (IStatic d) (MultiChr c v x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.Term.MultiChr

type LeftPosTy (IStatic d) (MultiChr c v x) (PointR I) = IStatic (d + c)
type LeftPosTy (IStatic d) (MultiChr c v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

type LeftPosTy (IStatic d) (MultiChr c v x) (PointL I) = IStatic d
type LeftPosTy (OStatic d) (MultiChr c v x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.MultiChr

type LeftPosTy (OStatic d) (MultiChr c v x) (PointL O) = OStatic (d + c)
type LeftPosTy (IVariable d) (Str linked minSz maxSz v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Str

type LeftPosTy (IVariable d) (Str linked minSz maxSz v x) (PointL I) = IVariable d
type LeftPosTy (IStatic d) (Str linked minSz maxSz v x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.Term.Str

type LeftPosTy (IStatic d) (Str linked minSz maxSz v x) (PointL I) = IVariable d
type LeftPosTy (ps :. p) (TwITbl b s m arr (eos :. EmptyOk) (us :. u) x) (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

type LeftPosTy (ps :. p) (TwITbl b s m arr (eos :. EmptyOk) (us :. u) x) (is :. i) = LeftPosTy ps (TwITbl b s m arr eos us x) is :. LeftPosTy p (TwITbl b s m arr EmptyOk u x) i
type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) = IVariable d
type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IVariable d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) = IVariable d
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointL I) x) (PointL I) = IVariable d
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (PointR I) x) (PointR I) = IVariable d
type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (Unit I) x) (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (IStatic d) (TwITbl b s m arr EmptyOk (Unit I) x) (Unit I) = IStatic d
type LeftPosTy (OLeftOf d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OLeftOf d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) = (TypeError (Text "OLeftOf is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)
type LeftPosTy (OFirstLeft d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OFirstLeft d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) = (TypeError (Text "OFirstLeft is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)
type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (PointL O) x) (PointL O) = OFirstLeft d
type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (Unit O) x) (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (OStatic d) (TwITbl b s m arr EmptyOk (Unit O) x) (Unit O) = OStatic d
type LeftPosTy (ps :. p) (TwITblBt b s arr (eos :. EmptyOk) (us :. u) x mF mB r) (is :. i) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

type LeftPosTy (ps :. p) (TwITblBt b s arr (eos :. EmptyOk) (us :. u) x mF mB r) (is :. i) = LeftPosTy ps (TwITblBt b s arr eos us x mF mB r) is :. LeftPosTy p (TwITblBt b s arr EmptyOk u x mF mB r) i
type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) = IVariable d
type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IVariable d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) = IVariable d
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointL I) x mB mF r) (PointL I) = IVariable d
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) Source # 
Instance details

Defined in ADP.Fusion.PointR.SynVar.Indices

type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (PointR I) x mB mF r) (PointR I) = IVariable d
type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit I) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (IStatic d) (TwITblBt b s arr EmptyOk (Unit I) x mB mF r) (Unit I) = IStatic d
type LeftPosTy (OLeftOf d) (TwITblBt s b arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OLeftOf d) (TwITblBt s b arr EmptyOk (PointL O) x mB mF r) (PointL O) = (TypeError (Text "OLeftOf is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)
type LeftPosTy (OFirstLeft d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OFirstLeft d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) = (TypeError (Text "OFirstLeft is illegal for outside tables. Check your grammars for multiple Outside syntactic variable on the r.h.s!") :: Type)
type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.SynVar.Indices

type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (PointL O) x mB mF r) (PointL O) = OFirstLeft d
type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit O) Source # 
Instance details

Defined in ADP.Fusion.Unit.SynVar.Indices

type LeftPosTy (OStatic d) (TwITblBt b s arr EmptyOk (Unit O) x mB mF r) (Unit O) = OStatic d

class Build x where Source #

Finally, we need to be able to correctly build together symbols on the right-hand side of the (<<<) operator.

The default makes sure that the last (or only) argument left over is correctly assigned a Z to terminate the symbol stack.

Minimal complete definition

Nothing

Associated Types

type Stack x :: * Source #

Methods

build :: x -> Stack x Source #

build :: Stack x ~ (S :!: x) => x -> Stack x Source #

Instances
Build Switch Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Switch

Associated Types

type Stack Switch :: Type Source #

Build Edge Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Edge

Associated Types

type Stack Edge :: Type Source #

Methods

build :: Edge -> Stack Edge Source #

Build Deletion Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Deletion

Associated Types

type Stack Deletion :: Type Source #

Build (Epsilon lg) Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Epsilon

Associated Types

type Stack (Epsilon lg) :: Type Source #

Methods

build :: Epsilon lg -> Stack (Epsilon lg) Source #

Build x => Build (x :!: y) Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Associated Types

type Stack (x :!: y) :: Type Source #

Methods

build :: (x :!: y) -> Stack (x :!: y) Source #

Build (TermSymbol a b) Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

Associated Types

type Stack (TermSymbol a b) :: Type Source #

Methods

build :: TermSymbol a b -> Stack (TermSymbol a b) Source #

Build (Test v x) Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Test

Associated Types

type Stack (Test v x) :: Type Source #

Methods

build :: Test v x -> Stack (Test v x) Source #

Build (PeekIndex i) Source # 
Instance details

Defined in ADP.Fusion.Core.Term.PeekIndex

Associated Types

type Stack (PeekIndex i) :: Type Source #

Methods

build :: PeekIndex i -> Stack (PeekIndex i) Source #

Build (Chr r x) Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Chr

Associated Types

type Stack (Chr r x) :: Type Source #

Methods

build :: Chr r x -> Stack (Chr r x) Source #

Build (MultiChr c v x) Source # 
Instance details

Defined in ADP.Fusion.Core.Term.MultiChr

Associated Types

type Stack (MultiChr c v x) :: Type Source #

Methods

build :: MultiChr c v x -> Stack (MultiChr c v x) Source #

Build (Split uId splitType synVar) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Split.Type

Associated Types

type Stack (Split uId splitType synVar) :: Type Source #

Methods

build :: Split uId splitType synVar -> Stack (Split uId splitType synVar) Source #

Build (TwIRec m c i x) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Recursive.Type

Associated Types

type Stack (TwIRec m c i x) :: Type Source #

Methods

build :: TwIRec m c i x -> Stack (TwIRec m c i x) Source #

Build (Str linked minSz maxSz v x) Source # 
Instance details

Defined in ADP.Fusion.Core.Term.Str

Associated Types

type Stack (Str linked minSz maxSz v x) :: Type Source #

Methods

build :: Str linked minSz maxSz v x -> Stack (Str linked minSz maxSz v x) Source #

Build (TwIRecBt c i x mF mB r) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Recursive.Type

Associated Types

type Stack (TwIRecBt c i x mF mB r) :: Type Source #

Methods

build :: TwIRecBt c i x mF mB r -> Stack (TwIRecBt c i x mF mB r) Source #

Build (TwITbl b s m arr c i x) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

Associated Types

type Stack (TwITbl b s m arr c i x) :: Type Source #

Methods

build :: TwITbl b s m arr c i x -> Stack (TwITbl b s m arr c i x) Source #

Build (TwITblBt b s arr c i x mF mB r) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Array.Type

Associated Types

type Stack (TwITblBt b s arr c i x mF mB r) :: Type Source #

Methods

build :: TwITblBt b s arr c i x mF mB r -> Stack (TwITblBt b s arr c i x mF mB r) Source #

data S Source #

Similar to Z, but terminates an argument stack.

Constructors

S 
Instances
Eq S Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Methods

(==) :: S -> S -> Bool #

(/=) :: S -> S -> Bool #

Show S Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Methods

showsPrec :: Int -> S -> ShowS #

show :: S -> String #

showList :: [S] -> ShowS #

Element S i Source # 
Instance details

Defined in ADP.Fusion.Core.Classes

Associated Types

data Elm S i :: Type Source #

type RecElm S i :: Type Source #

type Arg S :: Type Source #

Methods

getArg :: Elm S i -> Arg S Source #

getIdx :: Elm S i -> RunningIndex i Source #

getElm :: Elm S i -> RecElm S i Source #

SplitIxCol uId b (Elm S i) Source # 
Instance details

Defined in ADP.Fusion.Core.SynVar.Split.Type

Associated Types

type SplitIxTy uId b (Elm S i) :: Type Source #

Methods

splitIxCol :: Proxy uId -> Proxy b -> Elm S i -> SplitIxTy uId b (Elm S i) Source #

Monad m => MkStream m Z S Z Source # 
Instance details

Defined in ADP.Fusion.Core.Multi

Methods

mkStream :: Proxy Z -> S -> Int# -> LimitType Z -> Z -> Stream m (Elm S Z) Source #

Monad m => MkStream m Complement S (PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Monad m => MkStream m Complement S (Unit C) Source # 
Instance details

Defined in ADP.Fusion.Unit.Core

Methods

mkStream :: Proxy Complement -> S -> Int# -> LimitType (Unit C) -> Unit C -> Stream m (Elm S (Unit C)) Source #

(Monad m, MkStream m ps S is) => MkStream m (ps :. Complement :: Type) S (is :. PointL C) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. Complement) -> S -> Int# -> LimitType (is :. PointL C) -> (is :. PointL C) -> Stream m (Elm S (is :. PointL C)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. OFirstLeft d :: Type) S (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. OFirstLeft d) -> S -> Int# -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (Elm S (is :. PointL O)) Source #

(Monad m, MkStream m ps S is, KnownNat d) => MkStream m (ps :. OStatic d :: Type) S (is :. PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (ps :. OStatic d) -> S -> Int# -> LimitType (is :. PointL O) -> (is :. PointL O) -> Stream m (Elm S (is :. PointL O)) Source #

(Monad m, KnownNat d) => MkStream m (OFirstLeft d :: Type) S (PointL O) Source # 
Instance details

Defined in ADP.Fusion.PointL.Core

Methods

mkStream :: Proxy (OFirstLeft d) -> S -> Int# -> LimitType (PointL O) -> PointL O -> Stream m (Elm S (PointL O)) Source #