id :: forall a. (a) -> a id = \x -> x k :: (String) -> (Number) -> String k = \x -> \y -> x iterate :: forall a. (Number) -> ((a) -> a) -> (a) -> a iterate = \n -> \f -> \a -> { var result = a; for (var i = 0; i < n; i = i + 1) { result = f(result); } return result; }