Besides the I/O stuff, you also get these things when you use the `-fhaskell-1.3' flag.
Once again: ANY of thing might CHANGE COMPLETELY before we have "1.3 for real."
data Either a b = Left a | Right b deriving (Text, Eq, Ord) data Maybe a = Nothing | Just a deriving (Eq, Ord, Text) thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b thenMaybe Nothing _ = Nothing thenMaybe (Just x) f = f x curry :: ((a,b) -> c) -> a -> b -> c curry f x y = f (x,y) uncurry :: (a -> b -> c) -> (a,b) -> c uncurry f (x,y) = f x y