合成に合成を適用以下略

{-
1個の時

_1 a1 a2 a3 = a1 (a2 a3)
-}

{-
2個の時

Prelude> :t (.)(.)
(.)(.) :: (a1 -> b -> c) -> a1 -> (a -> b) -> a -> c

(.) a1 a2 a3 = a1 (a2 a3)

(.)(.) a2 a3 = (.) (a2 a3) = (\a4 a5 -> (a2 a3) (a4 a5))

_2 a1 a2 a3 a4 = (a1 a2) (a3 a4)

Prelude> :t _2
_2 :: (t -> t2 -> t3) -> t -> (t1 -> t2) -> t1 -> t3
-}

{-
3個の時

Prelude> :t (.)(.)(.)
(.)(.)(.) :: (b -> c) -> (a -> a1 -> b) -> a -> a1 -> c

_2 (.) a1 a2 a3 = ((.) a1) (a2 a3) = (\a4 -> a1 ((a2 a3) a4))

_3 a1 a2 a3 a4 = a1 ((a2 a3) a4)

Prelude> :t _3
_3 :: (t2 -> t3) -> (t -> t1 -> t2) -> t -> t1 -> t3
-}

{-
4個の時

Prelude> :t (.)(.)(.)(.)
(.)(.)(.)(.)
  :: (a -> a1 -> b -> c) -> a -> a1 -> (a2 -> b) -> a2 -> c

_3 (.) a2 a3 a4 = (.) ((a2 a3) a4) = (\a5 a6 -> ((a2 a3) a4) (a5 a6))

_4 a1 a2 a3 a4 a5 = ((a1 a2) a3) (a4 a5)

Prelude> :t _4
_4 :: (t -> t2 -> t3 -> t4) -> t -> t2 -> (t1 -> t3) -> t1 -> t4
-}

{-
5個の時

Prelude> :t (.)(.)(.)(.)(.)
(.)(.)(.)(.)(.) :: (b1 -> c) -> (b -> b1) -> (a -> b) -> a -> c

_4 (.) a2 a3 a4 a5 = (((.) a2) a3) (a4 a5) = a2 (a3 (a4 a5))

_5 a1 a2 a3 a4 = a1 (a2 (a3 a4))

Prelude> :t _5
_5 :: (t2 -> t3) -> (t1 -> t2) -> (t -> t1) -> t -> t3
-}

{-
6個の時

Prelude> :t (.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)
  :: (b -> b1 -> c) -> (a -> b) -> a -> (a1 -> b1) -> a1 -> c

_5 (.) a2 a3 a4 = (.) (a2 (a3 a4)) = (\a5 a6 -> (a2 (a3 a4)) (a5 a6))

_6 a1 a2 a3 a4 a5 = (a1 (a2 a3)) (a4 a5)

Prelude> :t _6
_6 :: (t2 -> t3 -> t4) -> (t -> t2) -> t -> (t1 -> t3) -> t1 -> t4
-}

{-
7個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)
  :: (a -> b -> c) -> a -> (a1 -> a2 -> b) -> a1 -> a2 -> c

_6 (.) a2 a3 a4 a5 = ((.) (a2 a3)) (a4 a5) = (\a6 -> (a2 a3) ((a4 a5) a6))

_7 a1 a2 a3 a4 a5 = (a1 a2) ((a3 a4) a5)

Prelude> :t _7
_7 :: (t -> t2 -> t3) -> t -> (t1 -> t4 -> t2) -> t1 -> t4 -> t3
-}

{-
8個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)
  :: (b -> c) -> (a -> a1 -> a2 -> b) -> a -> a1 -> a2 -> c

_7 (.) a2 a3 a4 a5 = ((.) a2) ((a3 a4) a5) = (\a6 -> a2 (((a3 a4) a5) a6))

_8 a1 a2 a3 a4 a5 = a1 (((a2 a3) a4) a5)

Prelude> :t _8
_8 :: (t3 -> t4) -> (t -> t1 -> t2 -> t3) -> t -> t1 -> t2 -> t4
-}

{-
9個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (a -> a1 -> a2 -> b -> c)
     -> a
     -> a1
     -> a2
     -> (a3 -> b)
     -> a3
     -> c

_8 (.) a2 a3 a4 a5 = (.) (((a2 a3) a4) a5) = (\a6 a7 -> (((a2 a3) a4) a5) (a6 a7))

_9 a1 a2 a3 a4 a5 a6 = (((a1 a2) a3) a4) (a5 a6)

Prelude> :t _9
_9
  :: (t -> t2 -> t3 -> t4 -> t5)
     -> t
     -> t2
     -> t3
     -> (t1 -> t4)
     -> t1
     -> t5
-}

{-
10個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (b1 -> b -> c) -> (a -> b1) -> a -> (a1 -> b) -> a1 -> c

_9 (.) a2 a3 a4 a5 a6 = ((((.) a2) a3) a4) (a5 a6) = (a2 (a3 a4)) (a5 a6)

_10 a1 a2 a3 a4 a5 = (a1 (a2 a3)) (a4 a5)

Prelude> :t _10
_10 :: (t2 -> t3 -> t4) -> (t -> t2) -> t -> (t1 -> t3) -> t1 -> t4
-}

{-
11個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (a -> b -> c) -> a -> (a1 -> a2 -> b) -> a1 -> a2 -> c

_10 (.) a2 a3 a4 a5 = ((.) (a2 a3)) (a4 a5) = (\a6 -> (a2 a3) ((a4 a5) a6))

_11 a1 a2 a3 a4 a5 = (a1 a2) ((a3 a4) a5)

Prelude> :t _11
_11 :: (t -> t2 -> t3) -> t -> (t1 -> t4 -> t2) -> t1 -> t4 -> t3
-}

{-
12個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (b -> c) -> (a -> a1 -> a2 -> b) -> a -> a1 -> a2 -> c

_11 (.) a2 a3 a4 a5 = ((.) a2) ((a3 a4) a5) = (\a6 -> a2 (((a3 a4) a5) a6))

_12 a1 a2 a3 a4 a5 = a1 (((a2 a3) a4) a5)

Prelude> :t _12
_12 :: (t3 -> t4) -> (t -> t1 -> t2 -> t3) -> t -> t1 -> t2 -> t4
-}

{-
13個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (a -> a1 -> a2 -> b -> c)
     -> a
     -> a1
     -> a2
     -> (a3 -> b)
     -> a3
     -> c

_12 (.) a2 a3 a4 a5 = (.) (((a2 a3) a4) a5) = (\a6 a7 -> (((a2 a3) a4) a5) (a6 a7))

_13 a1 a2 a3 a4 a5 a6 = (((a1 a2) a3) a4) (a5 a6)

Prelude> :t _13
_13
  :: (t -> t2 -> t3 -> t4 -> t5)
     -> t
     -> t2
     -> t3
     -> (t1 -> t4)
     -> t1
     -> t5
-}

{-
14個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (b1 -> b -> c) -> (a -> b1) -> a -> (a1 -> b) -> a1 -> c


_13 (.) a2 a3 a4 a5 a6 = ((((.) a2) a3) a4) (a5 a6) = (a2 (a3 a4)) (a5 a6)

_14 a1 a2 a3 a4 a5 = (a1 (a2 a3)) (a4 a5)

Prelude> :t _14
_14 :: (t2 -> t3 -> t4) -> (t -> t2) -> t -> (t1 -> t3) -> t1 -> t4
-}

{-
15個の時

Prelude> :t (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)
  :: (a -> b -> c) -> a -> (a1 -> a2 -> b) -> a1 -> a2 -> c

_14 (.) a2 a3 a4 a5 = ((.) (a2 a3)) (a4 a5) = (\a6 -> (a2 a3) ((a4 a5) a6))

_15 a1 a2 a3 a4 a5 = (a1 a2) ((a3 a4) a5)

Prelude> :t _15
_15 :: (t -> t2 -> t3) -> t -> (t1 -> t4 -> t2) -> t1 -> t4 -> t3
-}