curry3 :: ((a, b, c) -> d)    ->     (a -> b -> c -> d)
curry3 fn = \x -> \y -> \z -> fn (x,y,z)
curry3 :: ((a, b, c) -> d)    ->     (a -> b -> c -> d)
curry3 fn = \x -> \y -> \z -> fn (x,y,z)
curry3 fn = \x -> \y -> \z -> fn (x,y,z)