module Data.Function.Wrap where
wrap1
:: (r -> s)
-> (a1 -> r)
-> (a1 -> s)
wrap1 = (.)
wrap2
:: (r -> s)
-> (a1 -> a2 -> r)
-> (a1 -> a2 -> s)
wrap2 s r =
\a1 a2 ->
s (r a1 a2)
wrap3
:: (r -> s)
-> (a1 -> a2 -> a3 -> r)
-> (a1 -> a2 -> a3 -> s)
wrap3 s r =
\a1 a2 a3 ->
s (r a1 a2 a3)
wrap4
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> r)
-> (a1 -> a2 -> a3 -> a4 -> s)
wrap4 s r =
\a1 a2 a3 a4 ->
s (r a1 a2 a3 a4)
wrap5
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> s)
wrap5 s r =
\a1 a2 a3 a4 a5 ->
s (r a1 a2 a3 a4 a5)
wrap6
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> s)
wrap6 s r =
\a1 a2 a3 a4 a5 a6 ->
s (r a1 a2 a3 a4 a5 a6)
wrap7
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> s)
wrap7 s r =
\a1 a2 a3 a4 a5 a6 a7 ->
s (r a1 a2 a3 a4 a5 a6 a7)
wrap8
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> s)
wrap8 s r =
\a1 a2 a3 a4 a5 a6 a7 a8 ->
s (r a1 a2 a3 a4 a5 a6 a7 a8)
wrap9
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> s)
wrap9 s r =
\a1 a2 a3 a4 a5 a6 a7 a8 a9 ->
s (r a1 a2 a3 a4 a5 a6 a7 a8 a9)
wrap10
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> s)
wrap10 s r =
\a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 ->
s (r a1 a2 a3 a4 a5 a6 a7 a8 a9 a10)
wrap11
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> s)
wrap11 s r =
\a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 ->
s (r a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11)
wrap12
:: (r -> s)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> a12 -> r)
-> (a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> a10 -> a11 -> a12 -> s)
wrap12 s r =
\a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 ->
s (r a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12)