Safe Haskell  SafeInfered 

the components for constructing Orthotope Machine data flow draph. Most components take three arguments:
vector :: * > *
 The array dimension. It is a
Vector
that defines the dimension of the Orthotope on which the OM operates. gauge :: *
 The array index. The combination
vector gauge
needs to be an instance ofC
if you want to performShift
operation. anot :: *
 The annotations put on each node. If you want to use
Annotation,
anot
needs to be an instance ofMonoid
.
 data Setup vector gauge anot = Setup {
 staticValues :: Vector (Named DynValue)
 globalAnnotation :: anot
 data Kernel vector gauge anot = Kernel {
 kernelName :: Name
 dataflow :: Graph vector gauge anot
 type Graph vector gauge anot = Gr (Node vector gauge anot) Edge
 nmap :: (a > b) > Graph v g a > Graph v g b
 imap :: (Node > a > b) > Graph v g a > Graph v g b
 getA :: Node v g a > a
 data Node vector gauge anot
 data Edge
 newtype StaticIdx = StaticIdx {
 fromStaticIdx :: Int
 data Inst vector gauge
Documentation
data Setup vector gauge anot Source
An OM Setup, a set of information needed before you start building a Kernel
.
Setup  

data Kernel vector gauge anot Source
A Kernel
for OM perfor a block of calculations on OM.
Kernel  

type Graph vector gauge anot = Gr (Node vector gauge anot) EdgeSource
The dataflow graph for Orthotope Machine. anot is an additional annotation.
imap :: (Node > a > b) > Graph v g a > Graph v g bSource
Map the Graph
annotation from one type to another, while referring to the node indices.
data Node vector gauge anot Source
The Node
for the dataflow Graph
of the Orthotope machine.
The dataflow graph is a 2part graph consisting of NValue
and NInst
nodes.
NValue DynValue anot  A value node. An 
NInst (Inst vector gauge) anot  An instruction node. An 