1-- | 2-- Module : Foundation.Strict 3-- License : BSD-style 4-- Maintainer : Foundation 5-- Stability : stable 6-- Portability : portable 7-- 8-- Enforce strictness when executing lambda 9-- 10 11module Foundation.Strict 12 ( strict1 13 , strict2 14 , strict3 15 , strict4 16 , strict5 17 , strict6 18 ) where 19 20strict1 :: (a -> b) -> a -> b 21strict1 f !a = f a 22 23strict2 :: (a -> b -> c) -> a -> b -> c 24strict2 f !a !b = f a b 25 26strict3 :: (a -> b -> c -> d) -> a -> b -> c -> d 27strict3 f !a !b !c = f a b c 28 29strict4 :: (a -> b -> c -> d -> e) -> a -> b -> c -> d -> e 30strict4 f !a !b !c !d = f a b c d 31 32strict5 :: (a -> b -> c -> d -> e -> f) -> a -> b -> c -> d -> e -> f 33strict5 f !a !b !c !d !e = f a b c d e 34 35strict6 :: (a -> b -> c -> d -> e -> f -> g) -> a -> b -> c -> d -> e -> f -> g 36strict6 f !a !b !c !d !e !g = f a b c d e g 37 38