/ Compose / applicative
applicative
 1      let Applicative = ./../Applicative/Type
 2  
 3  in    λ(f : Type → Type)
 4      → λ(g : Type → Type)
 5      → λ(fApplicative : Applicative f)
 6      → λ(gApplicative : Applicative g)
 7      →     ./functor f g fApplicative.{ map } gApplicative.{ map }
 8          ∧ { pure =
 9                  λ(a : Type)
10                → λ(x : a)
11                → fApplicative.pure (g a) (gApplicative.pure a x)
12            , ap =
13                  λ(a : Type)
14                → λ(b : Type)
15                → λ(k : ./Type f g (a → b))
16                → fApplicative.ap
17                  (g a)
18                  (g b)
19                  ( fApplicative.map
20                    (g (a → b))
21                    (g a → g b)
22                    (gApplicative.ap a b)
23                    k
24                  )
25            }
26        : Applicative (./Type f g)