module Data.Strictness.HT where

{-# INLINE arguments1 #-}
arguments1 :: (a -> x) -> a -> x
arguments1 :: (a -> x) -> a -> x
arguments1 f :: a -> x
f a :: a
a = a -> x
f (a -> x) -> a -> x
forall a b. (a -> b) -> a -> b
$! a
a

{-# INLINE arguments2 #-}
arguments2 :: (a -> b -> x) -> a -> b -> x
arguments2 :: (a -> b -> x) -> a -> b -> x
arguments2 f :: a -> b -> x
f a :: a
a b :: b
b = (a -> b -> x
f (a -> b -> x) -> a -> b -> x
forall a b. (a -> b) -> a -> b
$! a
a) (b -> x) -> b -> x
forall a b. (a -> b) -> a -> b
$! b
b

{-# INLINE arguments3 #-}
arguments3 :: (a -> b -> c -> x) -> a -> b -> c -> x
arguments3 :: (a -> b -> c -> x) -> a -> b -> c -> x
arguments3 f :: a -> b -> c -> x
f a :: a
a b :: b
b c :: c
c = ((a -> b -> c -> x
f (a -> b -> c -> x) -> a -> b -> c -> x
forall a b. (a -> b) -> a -> b
$! a
a) (b -> c -> x) -> b -> c -> x
forall a b. (a -> b) -> a -> b
$! b
b) (c -> x) -> c -> x
forall a b. (a -> b) -> a -> b
$! c
c

{-# INLINE arguments4 #-}
arguments4 :: (a -> b -> c -> d -> x) -> a -> b -> c -> d -> x
arguments4 :: (a -> b -> c -> d -> x) -> a -> b -> c -> d -> x
arguments4 f :: a -> b -> c -> d -> x
f a :: a
a b :: b
b c :: c
c d :: d
d = (((a -> b -> c -> d -> x
f (a -> b -> c -> d -> x) -> a -> b -> c -> d -> x
forall a b. (a -> b) -> a -> b
$! a
a) (b -> c -> d -> x) -> b -> c -> d -> x
forall a b. (a -> b) -> a -> b
$! b
b) (c -> d -> x) -> c -> d -> x
forall a b. (a -> b) -> a -> b
$! c
c) (d -> x) -> d -> x
forall a b. (a -> b) -> a -> b
$! d
d

{-# INLINE arguments5 #-}
arguments5 :: (a -> b -> c -> d -> e -> x) -> a -> b -> c -> d -> e -> x
arguments5 :: (a -> b -> c -> d -> e -> x) -> a -> b -> c -> d -> e -> x
arguments5 f :: a -> b -> c -> d -> e -> x
f a :: a
a b :: b
b c :: c
c d :: d
d e :: e
e = ((((a -> b -> c -> d -> e -> x
f (a -> b -> c -> d -> e -> x) -> a -> b -> c -> d -> e -> x
forall a b. (a -> b) -> a -> b
$! a
a) (b -> c -> d -> e -> x) -> b -> c -> d -> e -> x
forall a b. (a -> b) -> a -> b
$! b
b) (c -> d -> e -> x) -> c -> d -> e -> x
forall a b. (a -> b) -> a -> b
$! c
c) (d -> e -> x) -> d -> e -> x
forall a b. (a -> b) -> a -> b
$! d
d) (e -> x) -> e -> x
forall a b. (a -> b) -> a -> b
$! e
e