What you're asking for is essentially a dependent type (something where a type depends on a value). Haskell doesn't support these, but can approximate them with GADTs:
I have a user input (string) and need to select one of two types.
depending what the input is. is this possible?
data A
data B
data X n = X String
op :: String -> X n
op "a" = X "a" :: X A
op "b" = X "b" :: X B
this does obviously not compile. is there a way to achieve that the type
X A is produced when the input is "a" and X B when the input is "b"?
thank you for help!
andrew
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe