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'.