
Hi, I have a question about types in Haskell. I feel that I am overlooking some obvious solution, but I do not manage to get it right. Here is the plot: I have got 4 different types of 'rules', each with it's own constructor. So i defined:
type Rules = [Rule] data Rule = RuRule | SgRule | GcRule | FrRule deriving (Eq,Show) data RuRule = Ru { rrsrt :: Char , rrant :: Expression , rrfps :: FilePos } deriving (Eq,Show) data SgRule = Sg { srfps :: FilePos , srsig :: Rule , srxpl :: String , srtyp :: (Concept,Concept) } deriving (Eq,Show) data GcRule = Gc { grfps :: FilePos , grspe :: Morphism , grgen :: Expression } deriving (Eq,Show) data FrRule = Fr { fraut :: AutType , frdec :: Declaration , frcmp :: Expression , frpat :: String } deriving (Eq,Show)
Now I would like to be able to use these rules without knowing what kind they are, in lists, however i get errors like Couldn't match expected type `Rule' against inferred type `SgRule'. Is there any other (even trivial?) way to get this done? I know Haskell well enough to know that it is possible, but I don not know Haskell well enough to know how to do it :teeth: Any help is kindly appreciated! Han Joosten -- View this message in context: http://www.nabble.com/nooby-question-on-typing-tp19470727p19470727.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.