Control.FlatSeq

hxt-9.3.1.16: A collection of tools for processing XML with Haskell.

Copyright | Copyright (C) 2011 Uwe Schmidt
License | MIT
Maintainer | Uwe Schmidt (uwe\@fh-wedel.de)
Stability | experimental
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Control.FlatSeq

Description

Force evaluation like deepseq in Control.DeepSeq, but control the depth of evaluation. flatseq may evaluate more than seq but less than deepseq

Synopsis

- ($!!) :: WNFData a => (a -> b) -> a -> b
- flatseq :: WNFData a => a -> b -> b
- rlnf :: (a -> ()) -> [a] -> ()
- class WNFData a where

# Documentation

($!!) :: WNFData a => (a -> b) -> a -> b infixr 0 #

flatseq :: WNFData a => a -> b -> b #

rlnf :: (a -> ()) -> [a] -> () #

class WNFData a where #

A class of types that can be partially evaluated, but evaluation can be propagated deeper than WHNF

Methods

rwnf :: a -> () #

Default for rwnf is reduction to WHNF

rwnf2 :: a -> () #

Default for rwnf2 is rwnf

Instances

WNFData Bool # |
Methods rwnf :: Bool -> () # rwnf2 :: Bool -> () #
WNFData Char # |
Methods rwnf :: Char -> () # rwnf2 :: Char -> () #
WNFData Double # |
Methods rwnf :: Double -> () # rwnf2 :: Double -> () #
WNFData Float # |
Methods rwnf :: Float -> () # rwnf2 :: Float -> () #
WNFData Int # |
Methods rwnf :: Int -> () # rwnf2 :: Int -> () #
WNFData Integer # |
Methods rwnf :: Integer -> () # rwnf2 :: Integer -> () #
WNFData Word # |
Methods rwnf :: Word -> () # rwnf2 :: Word -> () #
WNFData Word8 # |
Methods rwnf :: Word8 -> () # rwnf2 :: Word8 -> () #
WNFData Word16 # |
Methods rwnf :: Word16 -> () # rwnf2 :: Word16 -> () #
WNFData Word32 # |
Methods rwnf :: Word32 -> () # rwnf2 :: Word32 -> () #
WNFData Word64 # |
Methods rwnf :: Word64 -> () # rwnf2 :: Word64 -> () #
WNFData () # |
Methods rwnf :: () -> () # rwnf2 :: () -> () #
WNFData QName # |
Methods rwnf :: QName -> () # rwnf2 :: QName -> () #
WNFData XName # |
Methods rwnf :: XName -> () # rwnf2 :: XName -> () #
WNFData DTDElem # |
Methods rwnf :: DTDElem -> () # rwnf2 :: DTDElem -> () #
WNFData XNode # |
Methods rwnf :: XNode -> () # rwnf2 :: XNode -> () #
WNFData a => WNFData [a] # |
Methods rwnf :: [a] -> () # rwnf2 :: [a] -> () #
WNFData a => WNFData (NTree a) # |
Methods rwnf :: NTree a -> () # rwnf2 :: NTree a -> () #
(WNFData a, WNFData b) => WNFData (a, b) # |
Methods rwnf :: (a, b) -> () # rwnf2 :: (a, b) -> () #
(WNFData a, WNFData b, WNFData c) => WNFData (a, b, c) # |
Methods rwnf :: (a, b, c) -> () # rwnf2 :: (a, b, c) -> () #
(WNFData a, WNFData b, WNFData c, WNFData d) => WNFData (a, b, c, d) # |
Methods rwnf :: (a, b, c, d) -> () # rwnf2 :: (a, b, c, d) -> () #