let apply : ('a -> 'b) repr -> 'a repr -> 'b repr = fun f_repr x -> match f_repr with | Lambda f -> f x | _ -> assert false