Common typeclasses definitions
NonVoid* = concept x x isnot void
Eq* = concept xy (x == y) is bool
Ord* = concept xy x is Eq and y is Eq (x < y) is bool (x <= y) is bool