I want to write a function in haskell which would not mind in what order I provide it its argument, for example, I want to unify these two functions
reproduce1 :: Male -> Female -> Child
reproduce2 :: Female -> Male -> Child
by one function ‘reproduce’.
You can do this using a multi-parameter type class.
However, I’m curious about why you would want to do this.