Cornel,
> data Sequ a = Empty
> | Cons (a,Sequ a)
wieso verwendest Du hier nicht einfach [a]?
> If the typevariable "a" would be restricted to range over the typeclass Eq,
> the dirty trick of adding the guard
>
> n==n
>
> to the definition of mergesort could be used. But this is not possible if
> this restriction does not apply.
Mir scheint, dass wenn es eine Ordnung a -> a -> Bool gibt, dann gibt
es doch auch eine Gleichheit. Und wenn die Ordnung eine beliebige
ist, z.B. \x y -> true, dann braucht es doch auch kein mergesort,
weil dann ja auch append korrekt sortiert, oder? Insofern wuerde ich
einfach schreiben
mergesort :: Eq a => (a -> a -> Bool) -> [a] -> [a]
-Konstantin