fun : [`a, `b] ((`a -> `b) -> (`a -> `b)) -> `a -> `b -> `b
    fix0 (f : (`a -> `b) -> (`a -> `b)) =
    (\(a : `a) ->
      (\(b : `b) -> f (\(x : `a) -> b : `a -> `b) a : `b -> `b)
    : `a -> `b -> `b)