-- | -- Module : Foundation.Strict -- License : BSD-style -- Maintainer : Foundation -- Stability : stable -- Portability : portable -- -- Enforce strictness when executing lambda -- module Foundation.Strict ( strict1 , strict2 , strict3 , strict4 , strict5 , strict6 ) where strict1 :: (a -> b) -> a -> b strict1 f !a = f a strict2 :: (a -> b -> c) -> a -> b -> c strict2 f !a !b = f a b strict3 :: (a -> b -> c -> d) -> a -> b -> c -> d strict3 f !a !b !c = f a b c strict4 :: (a -> b -> c -> d -> e) -> a -> b -> c -> d -> e strict4 f !a !b !c !d = f a b c d strict5 :: (a -> b -> c -> d -> e -> f) -> a -> b -> c -> d -> e -> f strict5 f !a !b !c !d !e = f a b c d e strict6 :: (a -> b -> c -> d -> e -> f -> g) -> a -> b -> c -> d -> e -> f -> g strict6 f !a !b !c !d !e !g = f a b c d e g