Eliminate/move class Alternative

Wolfgang Jeltsch g9ks157k at acme.softbase.org
Mon Mar 16 10:23:03 EDT 2009

Am Sonntag, 15. März 2009 23:50 schrieb Ben Franksen:
> This is mostly due to the class method 'empty'.
> First of all, this is a bad name, /especially/ in the context of parsers,
> where 'empty' intuitively means 'recognize the empty sequence of tokens'
> which is definitely /not/ what Alternative's 'empty' means. (Indeed, this
> is normally be the meaning of 'pure' from class Applicative.)
> The 'empty' from Alternative rather means 'fail'. Yeah, I know that this
> name is already taken by class Monad. Many names would be better
> than 'empty', for instance 'none', or just 'failed'. (I'll stick
> with 'none' in what follows.)

The parser fails so “fail” might be a good name. However, when using an 
applicative style for writing parsers (in contrast to the “imperative” do 
notation), you almost write a grammar of your language. And “empty” just 
denotes the empty language. So the name might be not as bad as it first looks 

Best wishes,

More information about the Libraries mailing list