
Hello, I have some trouble evaluating Enum class. Following is my source: data Authors= Buzzati | Werber | Verne | Ray | Asimov | Voltaire deriving (Enum, Show) auths=[Buzzati .. Verne] ++ enumFrom Ray pref=take 3 auths -- 1 disp_pref=mapM_ (putStrLn) pref auth1 = Buzzati auth2 = succ auth1 -- Werber auth3 = pred Asimov -- Ray num_auth4=fromEnum Verne -- 2 -- 2 toEnum main= display Buzzati display x = do putStrLn (show x) display (succ x) -- 3 end of enum 1. could'nt match expected type [Char] against inferred type Authors I would like to display each data constructor name on one line , giving : Buzzati Werber Verne How can i translate data from one type to another (Authors to [Char])? 2. Like fromEnum gives data constructor index, is it possible with toEnum (or other way) to get the nth constructor of the given type ? eg : 2 applied to Authors (not in scope ?) would give Verne 3. tried to take 'succ' of last tag in enumeration How to detect the end of an enumeration ? Can i get the maxbound index ? Thanks, Didier.