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

Reply via email to