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

Safe HaskellNone
LanguageHaskell2010

ADP.Fusion.Core.SynVar.Array

Contents

Synopsis

Documentation

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

Constraints needed to use iTblStream.

iTblStream :: forall b s m pos posLeft ls arr x u c i. (ITblCx m pos ls arr x u c i, posLeft ~ LeftPosTy pos (TwITbl b s m arr c u x) i, MkStream m posLeft ls i) => Proxy pos -> Pair ls (TwITbl b s m arr c u x) -> Int# -> LimitType i -> i -> Stream m (Elm (ls :!: TwITbl b s m arr c u x) i) Source #

General function for ITbls with skalar indices.

btITblStream :: forall b s mB mF pos posLeft ls arr x r u c i. (ITblCx mB pos ls arr x u c i, posLeft ~ LeftPosTy pos (TwITblBt b s arr c u x mF mB r) i, MkStream mB posLeft ls i) => Proxy pos -> Pair ls (TwITblBt b s arr c u x mF mB r) -> Int# -> LimitType i -> i -> Stream mB (Elm (ls :!: TwITblBt b s arr c u x mF mB r) i) Source #

General function for Backtrack ITbls with skalar indices.

Orphan instances

(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

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

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

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

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 #