[Haskell-cafe] Re: Strange typing?

Gleb Alexeyev gleb.alexeev at gmail.com
Mon Mar 22 05:32:57 EDT 2010


Ozgur Akgun wrote:
> Is there any way to limit a functions type, not by a data type but by a 
> group of constructors of a data type? If not, what would be the *right* 
> thing to do to achieve this level of type safety?
> 
> data DT1 = X | Y | Z
> data DT2 = A | B | C | D
> 
> 
> func1 :: DT1 -> DT2 -- instead of this
> func1' :: (X|Y) -> (B|C) -- i want sth. like this. (| means or)
> 
OCaml has a feature called 'polymorphic variants' that allows exactly 
this. You may want to google 'polymorphic variants in haskell'.



More information about the Haskell-Cafe mailing list