Solution2.html
From HaskellWiki
parent :: Sheep -> Maybe Sheep parent s = father s `mplus` mother s grandparent :: Sheep -> Maybe Sheep grandparent s = paternalGrandfather s `mplus` paternalGrandmother s `mplus` maternalGrandfather s `mplus` maternalGrandmother s
Alternative grandparent:
grandparent :: Sheep -> Maybe Sheep grandparent s = (father s >>= parent) `mplus` (mother s >>= parent)
