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

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.SynVar.Array

Contents

Synopsis

Documentation

type ITblCx m ls arr x u c i = (TableStaticVar u c i, MkStream m ls i, Element ls i, AddIndexDense (Elm (SynVar1 (Elm ls i)) (Z :. i)) (Z :. u) (Z :. c) (Z :. i), PrimArrayOps arr u x) Source #

Constraints needed to use iTblStream.

iTblStream :: forall m ls arr x u c i. ITblCx m ls arr x u c i => Pair ls (TwITbl m arr c u x) -> Context i -> i -> i -> Stream m (Elm (ls :!: TwITbl m arr c u x) i) Source #

General function for ITbls with skalar indices.

btITblStream :: forall mB mF ls arr x r u c i. ITblCx mB ls arr x u c i => Pair ls (TwITblBt arr c u x mF mB r) -> Context i -> i -> i -> Stream mB (Elm (ls :!: TwITblBt arr c u x mF mB r) i) Source #

General function for Backtrack ITbls with skalar indices.

Instances

Orphan instances

(Monad mB, ITblCx mB ls arr x u c (i C)) => MkStream mB ((:!:) ls (TwITblBt arr c u x mF mB r)) (i C) Source # 

Methods

mkStream :: (ls :!: TwITblBt arr c u x mF mB r) -> Context (i C) -> i C -> i C -> Stream mB (Elm (ls :!: TwITblBt arr c u x mF mB r) (i C)) Source #

(Monad mB, ITblCx mB ls arr x u c (i O)) => MkStream mB ((:!:) ls (TwITblBt arr c u x mF mB r)) (i O) Source # 

Methods

mkStream :: (ls :!: TwITblBt arr c u x mF mB r) -> Context (i O) -> i O -> i O -> Stream mB (Elm (ls :!: TwITblBt arr c u x mF mB r) (i O)) Source #

(Monad mB, ITblCx mB ls arr x u c (i I)) => MkStream mB ((:!:) ls (TwITblBt arr c u x mF mB r)) (i I) Source # 

Methods

mkStream :: (ls :!: TwITblBt arr c u x mF mB r) -> Context (i I) -> i I -> i I -> Stream mB (Elm (ls :!: TwITblBt arr c u x mF mB r) (i I)) Source #

(Monad m, ITblCx m ls arr x u c (i C)) => MkStream m ((:!:) ls (TwITbl m arr c u x)) (i C) Source # 

Methods

mkStream :: (ls :!: TwITbl m arr c u x) -> Context (i C) -> i C -> i C -> Stream m (Elm (ls :!: TwITbl m arr c u x) (i C)) Source #

(Monad m, ITblCx m ls arr x u c (i O)) => MkStream m ((:!:) ls (TwITbl m arr c u x)) (i O) Source # 

Methods

mkStream :: (ls :!: TwITbl m arr c u x) -> Context (i O) -> i O -> i O -> Stream m (Elm (ls :!: TwITbl m arr c u x) (i O)) Source #

(Monad m, ITblCx m ls arr x u c (i I)) => MkStream m ((:!:) ls (TwITbl m arr c u x)) (i I) Source # 

Methods

mkStream :: (ls :!: TwITbl m arr c u x) -> Context (i I) -> i I -> i I -> Stream m (Elm (ls :!: TwITbl m arr c u x) (i I)) Source #

ModifyConstraint (TwITbl m arr EmptyOk i x) Source # 

Associated Types

type TNE (TwITbl m arr EmptyOk i x) :: * Source #

type TE (TwITbl m arr EmptyOk i x) :: * Source #

Methods

toNonEmpty :: TwITbl m arr EmptyOk i x -> TNE (TwITbl m arr EmptyOk i x) Source #

toEmpty :: TwITbl m arr EmptyOk i x -> TE (TwITbl m arr EmptyOk i x) Source #

ModifyConstraint (TwITblBt arr EmptyOk i x mF mB r) Source # 

Associated Types

type TNE (TwITblBt arr EmptyOk i x mF mB r) :: * Source #

type TE (TwITblBt arr EmptyOk i x mF mB r) :: * Source #

Methods

toNonEmpty :: TwITblBt arr EmptyOk i x mF mB r -> TNE (TwITblBt arr EmptyOk i x mF mB r) Source #

toEmpty :: TwITblBt arr EmptyOk i x mF mB r -> TE (TwITblBt arr EmptyOk i x mF mB r) Source #