What? Are you saying that I can legitimately read
contains :: NameClass -> QName -> Bool
two ways? Like, contains :: (NameClass, QName) -> Bool
And contains :: NameClass -> (QName, Bool)
? What about four types? contains :: Urk -> NameClass -> QName -> Bool