interface I { } | class I where { }
Polymorphie auf der Argumentseite:
boolean foo (I x) { ... } // universell foo :: I t => t -> Bool -- universell
auf der Resultatseite:
I bar (String s) { ... } // existenziell bar :: I t => String -> t -- universell