definition module StamBoom import GenTree :: FamilyTree :== GenTree Couple Single :: Couple = Couple Person Person :: Single = Single Person :: Person = Person DateOfBirth Gender String :: Gender = Male | Female :: DateOfBirth = DoB Year Month Day :: Year :== Int :: Month :== Int :: Day :== Int instance < DateOfBirth instance == DateOfBirth instance == Couple instance == Person instance == Gender okFamilyTree :: FamilyTree -> Bool rootAncestor :: FamilyTree -> Person inFamilyTree :: Person FamilyTree -> Bool marry :: Person Person FamilyTree -> FamilyTree addChild :: Person Couple FamilyTree -> FamilyTree children :: Person FamilyTree -> [Person] offspring :: Person FamilyTree -> [Person]