Next Types Are Theorems; Programs Are Proofs 22

Examples with(out) proof

       \z -> (snd z, fst z)            :: (a, b) -> (b, a)
       \f -> \p -> f (snd p) (fst p)   :: (a -> b -> c) -> (b, a) -> c
       \z -> let f = fst z
                 x = snd z
              in f x x                 :: (a -> a -> b, a) -> b
       \z -> fst z (snd z) (snd z)     :: (a -> a -> b, a) -> b

Next Next