zipWithDefaults :: (a -> b -> c) -> (a -> c) -> (b -> c) -> [a] -> [b] -> [c]
zipWithDefaults f g h (x:xs) (y:ys) = f x y : zipWithDefaults f g h xs ys
zipWithDefaults :: (a -> b -> c) -> (a -> c) -> (b -> c) -> [a] -> [b] -> [c]
zipWithDefaults f g h (x:xs) (y:ys) = f x y : zipWithDefaults f g h xs ys
zipWithDefaults f g h (x:xs) (y:ys) = f x y : zipWithDefaults f g h xs ys