feldspar-language-0.7: A functional embedded language for DSP and parallelism

Safe HaskellNone
LanguageHaskell2010

Feldspar.Core.Constructs.Loop

Documentation

data LoopM m a where Source

Constructors

While :: (Size (m ()) ~ AnySize) => LoopM m (m Bool :-> (m a :-> Full (m ()))) 
For :: (Size (m ()) ~ AnySize) => LoopM m (Length :-> ((Index -> m a) :-> Full (m ()))) 

Instances

Monad m => EvalBind (LoopM m) 
Monad m => Semantic (LoopM m) 
Monad m => Eval (LoopM m) 
Monad m => Render (LoopM m) 
Monad m => StringTree (LoopM m) 
Monad m => Equality (LoopM m) 
Monotonic (LoopM m) 
SizeProp (LoopM m) 
Sharable (LoopM m) 
((:<:) (LoopM Mut) dom, (:<:) ((:||) Variable Type) dom, (:<:) (CLambda Type) dom, (:<:) (MONAD Mut) dom, (:<:) MutableReference dom, (:<:) Let dom, Optimize (CLambda Type) dom, Optimize (MONAD Mut) dom, Optimize dom dom) => Optimize (LoopM Mut) dom 
(AlphaEq dom dom dom env, Monad m) => AlphaEq (LoopM m) (LoopM m) dom env 

data Loop a where Source

Constructors

ForLoop :: Type a => Loop (Length :-> (a :-> ((Index -> a -> a) :-> Full a))) 
WhileLoop :: Type a => Loop (a :-> ((a -> Bool) :-> ((a -> a) :-> Full a)))