Help needed with Data.Version

Simon Marlow simonmar at microsoft.com
Wed Mar 23 11:52:00 EST 2005


This is the right behaviour: the parser isn't greedy.  You just need to
take a parse in which the remainder is empty.

See for example Distribution.ParseUtils.runP.

Cheers,
	Simon

On 23 March 2005 15:19, Krasimir Angelov wrote:

> What I need is to have simple function of type (String -> Version).
> How I can do that with the current implementataion?
> 
> 
> On Wed, 23 Mar 2005 15:16:09 +0000, Ross Paterson
> <ross at soi.city.ac.uk> wrote: 
>> On Wed, Mar 23, 2005 at 02:55:47PM +0000, Krasimir Angelov wrote:
>>> I have found a bug in Data.Version. The expression:
>>> 
>>> readP_to_S parseVersion "1.0"
>>> 
>>> produces:
>>> 
>>> [(Version {versionBranch = [1], versionTags = []},".0"),(Version
>>> {versionBranch= [1,0], versionTags = []},"")]
>>> 
>>> With other words the parser is ambiguous.
>> 
>> It's no more ambiguous than
>> 
>> readP_to_S (many1 (satisfy isDigit)) "1234"
>> [("1","234"),("12","34"),("123","4"),("1234","")]
>> 
>> It just needs to be used in context.
>> 
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries



More information about the Libraries mailing list