| Portability | not portable |
|---|---|
| Stability | beta |
| Maintainer | eden@mathematik.uni-marburg.de |
| Safe Haskell | Safe-Infered |
Control.Parallel.Eden.Edi
Description
The low-level parallel functional language: EDen Implementation language
This module defines a thin layer of type-checking wrappers over the parallel primitives implemented in ParPrim.hs.
Depends on the Eden Compiler.
Eden Group Marburg
- fork :: IO () -> IO ()
- spawnProcessAt :: Int -> IO () -> IO ()
- spawnArgsProcessAt :: NFData a => Int -> (a -> IO ()) -> a -> IO ()
- data ChanName' a
- createC :: IO (ChanName' a, a)
- createCs :: Int -> IO ([ChanName' a], [a])
- sendWith :: Strategy a -> ChanName' a -> a -> IO ()
- sendNF :: NFData a => ChanName' a -> a -> IO ()
- sendStreamWith :: (a -> ()) -> ChanName' [a] -> [a] -> IO ()
- sendNFStream :: NFData a => ChanName' [a] -> [a] -> IO ()
- noPe :: IO Int
- selfPe :: IO Int
- class NFData a where
- rnf :: a -> ()
- using :: a -> Strategy a -> a
- r0 :: Strategy a
- rseq :: Strategy a
- rdeepseq :: NFData a => Strategy a
- seqList :: Strategy a -> Strategy [a]
- seqFoldable :: Foldable t => Strategy a -> Strategy (t a)
Documentation
class NFData a where
A class of types that can be fully evaluated.
Methods
rnf :: a -> ()
rnf should reduce its argument to normal form (that is, fully evaluate all sub-components), and then return '()'.
The default implementation of rnf is
rnf a = a `seq` ()
which may be convenient when defining instances for data types with no unevaluated fields (e.g. enumerations).
Instances
| NFData Bool | |
| NFData Char | |
| NFData Double | |
| NFData Float | |
| NFData Int | |
| NFData Int8 | |
| NFData Int16 | |
| NFData Int32 | |
| NFData Int64 | |
| NFData Integer | |
| NFData Word | |
| NFData Word8 | |
| NFData Word16 | |
| NFData Word32 | |
| NFData Word64 | |
| NFData () | |
| NFData Version | |
| NFData a => NFData [a] | |
| (Integral a, NFData a) => NFData (Ratio a) | |
| NFData (Fixed a) | |
| (RealFloat a, NFData a) => NFData (Complex a) | |
| NFData a => NFData (Maybe a) | |
| NFData (ChanName' a) | |
| NFData (Comm a) | |
| NFData (Comm a) | |
| NFData (a -> b) | This instance is for convenience and consistency with |
| (NFData a, NFData b) => NFData (Either a b) | |
| (NFData a, NFData b) => NFData (a, b) | |
| (Ix a, NFData a, NFData b) => NFData (Array a b) | |
| (NFData k, NFData a) => NFData (Map k a) | |
| (NFData a, NFData b, NFData c) => NFData (a, b, c) | |
| (NFData a, NFData b, NFData c, NFData d) => NFData (a, b, c, d) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5) => NFData (a1, a2, a3, a4, a5) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6) => NFData (a1, a2, a3, a4, a5, a6) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7) => NFData (a1, a2, a3, a4, a5, a6, a7) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8) => NFData (a1, a2, a3, a4, a5, a6, a7, a8) | |
| (NFData a1, NFData a2, NFData a3, NFData a4, NFData a5, NFData a6, NFData a7, NFData a8, NFData a9) => NFData (a1, a2, a3, a4, a5, a6, a7, a8, a9) |
rdeepseq :: NFData a => Strategy a
rdeepseq fully evaluates its argument.
Relies on class NFData from module Control.DeepSeq.
seqList :: Strategy a -> Strategy [a]
Evaluate each element of a list according to the given strategy.
This function is a specialisation of seqFoldable to lists.
seqFoldable :: Foldable t => Strategy a -> Strategy (t a)
Evaluate the elements of a foldable data structure according to the given strategy.