[Haskell-cafe] [Maybe Int] sans Nothings

Alexander Solla alex.solla at gmail.com
Tue May 24 20:38:06 CEST 2011


On Mon, May 23, 2011 at 6:21 PM, Richard O'Keefe <ok at cs.otago.ac.nz> wrote:

>
> On 24/05/2011, at 5:49 AM, Alexander Solla wrote:
> > There's a library function for it, but also:
> >
> > > filter ((/=) Nothing)
>
> The problem with that in general is that it only
> applies to [Maybe t] if Eq t, but you don't
> actually _need_ t to support equality.
> filter isJust
> will do the job, where isJust is in Data.Maybe.
>
>
Indeed, isJust will do the job.   Sometimes it is acceptable to just use the
tools you know.  For example, filtering a list of (Maybe Int)s.  This is a
balance that is tough to get right.

Personally, I find non-functional values without Eq instances to be
degenerate.  So I really do not mind superfluous Eq constraints.  I would
not hesitate to use filter ((/=) Nothing) in a function whose type has no
free type variables.  It's just a bit of plumbing inside of a more complex
function.

But the point of avoiding unnecessary constraints is a good one, especially
for constraints that constrain more strongly, e.g., Ord.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110524/28c658ff/attachment.htm>


More information about the Haskell-Cafe mailing list