uncurry functions, was a bad idea for an imperative language