Hello, My impression is that using existential types where possible will result in more complete type checking than Data.Dynamic but I'm not sure since I haven't yet tried Data.Dynamic in my own code. Can someone confirm if this is right?
Best Keith On Thu, Jan 7, 2010 at 2:02 PM, Christian Maeder <christian.mae...@dfki.de> wrote: > You could cast your parser result "a" to Dynamic using > Data.Dynamic.toDyn (and derive Typeable instances for all involved types). > > http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.2.0.0/Data-Dynamic.html > > Using an existential types may be another alternative. > > Cheers Christian > > rodrigo.bonifacio schrieb: >> Hi all, >> >> I have a family of parsers that return either (Success t) or (Fail), using >> the following data type: >> >>> data ParserResult a = Success a | Fail String >>> deriving (Read, Show, Eq, Ord) >>> >>> isSuccess (Success _) = True >>> isSuccess (Fail _) = False >>> ... >> >> I want to add the results of different parsers to a list. Such as: >> >>> m1 = parseFirstModel file1 -- it returns a ParserResult of t1 >>> m2 = parseSecondModel file2 -- it returns a ParserResult of t2 >> >>> ps = [m1, m2] >> >> In such a way that I could write something like: >> >>> if and (map isSuccess ps) >>> then process m1 m2 >>> else ... >> >> Actually, in the real program I have to check more than two input models. >> However, since Lists do only hold elements of a same type, I couldn't >> proceed in this way. Which improvements to the ParserResult data type should >> I wrote in order to proceed as I want to. >> >> Best regards, >> >> Rodrigo. >> > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > -- keithsheppard.name _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe