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

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.Term.Edge.Type

Documentation

data Edge e where Source #

Constructors

Edge :: (Int -> Int -> e) -> Edge e 

Instances

Build (Edge e) Source # 

Associated Types

type Stack (Edge e) :: * Source #

Methods

build :: Edge e -> Stack (Edge e) Source #

(Show i, Show (RunningIndex i), Show e, Show (Elm ls i)) => Show (Elm ((:!:) ls (Edge e)) i) Source # 

Methods

showsPrec :: Int -> Elm (ls :!: Edge e) i -> ShowS #

show :: Elm (ls :!: Edge e) i -> String #

showList :: [Elm (ls :!: Edge e) i] -> ShowS #

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

Associated Types

data Elm ((:!:) ls (Edge e)) i :: * Source #

type RecElm ((:!:) ls (Edge e)) i :: * Source #

type Arg ((:!:) ls (Edge e)) :: * Source #

Methods

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

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

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

type Stack (Edge e) Source # 
type Stack (Edge e) = (:!:) S (Edge e)
type TermArg (Edge e) Source # 
type TermArg (Edge e) = e
data Elm ((:!:) ls (Edge e)) Source # 
data Elm ((:!:) ls (Edge e)) = ElmEdge !e !(RunningIndex i) (Elm ls i)
type Arg ((:!:) ls (Edge e)) Source # 
type Arg ((:!:) ls (Edge e)) = (:.) (Arg ls) e