/ List / applicative
applicative
 1      let Applicative = ./../Applicative/Type
 2  
 3  in  let fold = (./foldable).fold
 4  
 5  in  let map = (./functor).map
 6  
 7  in      ./functor
 8        ∧ { pure =
 9              λ(a : Type) → λ(x : a) → [ x ]
10          , ap =
11                λ(a : Type)
12              → λ(b : Type)
13              → λ(g : List (a → b))
14              → λ(fa : List a)
15              → fold
16                (a → b)
17                g
18                (List b)
19                (λ(k : a → b) → λ(xs : List b) → map a b k fa # xs)
20                ([] : List b)
21          }
22      : Applicative List