On Mon, Jun 8, 2009 at 4:10 PM, Henry Laxen <nadine.and.he...@pobox.com>wrote:
> Lets suppose I have a file that has encoded things of different > types as integers, and now I would like to convert them back > into specific instances of a data type. For example, I have a > file that contains 1,1,2,3 and I would like the output to be > [Red, Red, Green, Blue]. I also would like to do this > generically, so that if I wanted to convert the same list of > integers into say Sizes, I would get [Small, Small, Medium, > Large] Now please have a look at the following code: > > {-# LANGUAGE DeriveDataTypeable #-} > import Data.Generics > data Color = Red | Green | Blue deriving (Eq,Ord,Read,Show,Typeable,Data) > data Size = Small | Mediaum | Large deriving > (Eq,Ord,Read,Show,Typeable,Data) What about making both of these instances of Enum instead of using Data and Typeable? You'd get fromEnum and toEnum. Which I think, would give you the int mapping that you are after. fromEnum :: Enum a => a -> Int toEnum :: Enum a => Int -> a Jason
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe