+isUtupleTy (Tcon tc) =
+ case tc of
+ (Just pm, 'Z':rest) | pm == primMname && last rest == 'H' ->
+ let mid = take ((length rest) - 1) rest in
+ all isDigit mid && (let num = read mid in
+ 1 <= num && num <= maxUtuple)
+ _ -> False
+-- The above is ugly, but less ugly than this:
+--tc `elem` [tcUtuple n | n <- [1..maxUtuple]]