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

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.Term.Chr.Point

Contents

Synopsis

Documentation

Orphan instances

TstCtx m ts s x0 i0 is (PointL O) => TermStream m (TermSymbol ts (Chr r x)) s ((:.) is (PointL O)) Source # 

Methods

termStream :: TermSymbol ts (Chr r x) -> Context (is :. PointL O) -> (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 #

TstCtx m ts s x0 i0 is (PointL I) => TermStream m (TermSymbol ts (Chr r x)) s ((:.) is (PointL I)) Source #

Current first try for using TermStream

TODO what happens to fusion if staticCheck happens before S.map?

NOTE / TODO a bit faster with seq xs ?

Methods

termStream :: TermSymbol ts (Chr r x) -> Context (is :. PointL I) -> (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 #

TmkCtx1 m ls (Chr r x) (PointL i) => MkStream m ((:!:) 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.

Methods

mkStream :: (ls :!: Chr r x) -> Context (PointL i) -> PointL i -> PointL i -> Stream m (Elm (ls :!: Chr r x) (PointL i)) Source #

TermStaticVar (Chr r x) (PointL O) Source # 
TermStaticVar (Chr r x) (PointL I) Source #