[Haskell-cafe] Distinct types in a list
rodrigo.bonifacio
rodrigo.bonifacio at uol.com.br
Thu Jan 7 13:35:10 EST 2010
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.
More information about the Haskell-Cafe
mailing list