It's annoying to have to monomorphize as in: ``` func map(f: float->float, l : [float]) -> [float] : destruct (l, []:[float], \x:float. \xs:[float]. f(x) :: map(f, xs)) ``` :-)