You can do this using a class with several parameters.
{-# LANGUAGE MultiParamTypeClasses #-} class Reproduce xy where reproduce :: x -> y -> Child instance Reproduce Male Female where reproduce = reproduce1 instance Reproduce Female Male where reproduce = reproduce2
However, I wonder why you would like to do this.
hammar
source share