
On Thu, Mar 03, 2016 at 04:04:07PM +0100, Kristoffer Føllesdal wrote:
I want a function fun :: q -> Either a b where q is of type a or b. fun shall work in the following way
fun x gives Left x if x :: a fun x gives Right x if x :: b
I can't help saying again that, despite this being a fine thing to *want*, Haskell really doesn't do this kind of polymorphism very well. If you pursue this road much further you will end up with 1. a deeper understanding of how Haskell's typeclasses work and why what you are trying to do just doesn't work very well, but 2. no useful code If you want outcome 1 then feel free to keep going. If not I suggest you just use differently named functions for the 'a' and 'Vect k a' cases. In my experience it really is *by far* the simplest solution. Tom