<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.lang.haskell.libraries">
    <title>gmane.comp.lang.haskell.libraries</title>
    <link>http://blog.gmane.org/gmane.comp.lang.haskell.libraries</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19482"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19467"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19434"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19392"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19373"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19370"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19366"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19333"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19300"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19285"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19266"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19265"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19260"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19233"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19230"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19226"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19225"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19214"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19210"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19202"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19482">
    <title>2014 Applicative =&gt; Monad proposal</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19482</link>
    <description>&lt;pre&gt;Hello libraries,

it's on! Time to tackle the Applicative-Monad issue, hopefully once and
for all. Over the last couple of weeks I've looked through previous
proposals, asked #haskell about their opinions, and compiled it all into
one file that sums up what I made of that. It's a bit long for an email
and uses markdown, so I'll just provide links at the end of this mail
instead of pasting it in here. In there, the whole thing and how to
approach it is explained in more detail. Here's an abstract of what it
the proposal consists of:


- Don't break compatibility
- Apply it gently

- Applicative m =&amp;gt; Monad m
- Applicative into Prelude (and therefore into the Report)
- (Alternative m, Monad m) =&amp;gt; MonadPlus m
- Promote `join` into the Monad typeclass


Let's make this happen! I'm going to give a ballpark discussion period
of four weeks, but since I can imagine this discussion could become
quite complex we shouldn't take it too serious. I'll summarize what's
been going on periodically though.

David



Links:

Th&lt;/pre&gt;</description>
    <dc:creator>David Luposchainsky</dc:creator>
    <dc:date>2013-05-23T19:39:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19467">
    <title>Making decisions</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19467</link>
    <description>&lt;pre&gt;This "burning bridges" thread has really got us going!  

I'm a bit concerned, though, that we don't have an effective mechanism for resolving such debates.  If everyone feels that they have a vote, perhaps, but only one among many, then one feels either mandated or indeed willing to invest the extra cycles to summarise pros and cons based on feedback, crisply articulate alternatives, and so on.   And, worse still, no one feels mandated to actually decide anything.   That's fine when there's a clear consensus; not so fine when there isn't, as here.  Several people on the "Burning bridges" thread have commented on the interminable nature of the debate.

Our general procedures for library changes are described here: http://www.haskell.org/haskellwiki/Library_submissions.  For specialised libraries (eg MD5 checksum, or even containers) the situation is clear: the author or current maintainer decides.

But for the basic core libraries, whose influence is pervasive, matters are murkier.  Looking at http://www.has&lt;/pre&gt;</description>
    <dc:creator>Simon Peyton-Jones</dc:creator>
    <dc:date>2013-05-23T07:48:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19434">
    <title>Votes for generalizing mapM &amp;c.</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19434</link>
    <description>&lt;pre&gt;
Here are the current totals by my count, ignoring any 0s:


+13 / -0


+1 / -11


+0 / -12


+0 / -13


- C.
&lt;/pre&gt;</description>
    <dc:creator>Casey McCann</dc:creator>
    <dc:date>2013-05-22T19:01:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19392">
    <title>HP 2013.2 - RC3 installers for OS X</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19392</link>
    <description>&lt;pre&gt;The Mac OS X RC3 installers are up:

Haskell Platform 2013.2.0.0 32bit
rc3.signed.pkg&amp;lt;http://www.ozonehouse.com/mark/platform/Haskell%20Platform%202013.2.0.0%2032bit%20rc3.signed.pkg&amp;gt;
Haskell Platform 2013.2.0.0 64bit
rc3.signed.pkg&amp;lt;http://www.ozonehouse.com/mark/platform/Haskell%20Platform%202013.2.0.0%2064bit%20rc3.signed.pkg&amp;gt;


Only difference in these from RC2 is that the missing documentation for
network, random, and primitive has been restored.

These will be the final, barring any catastrophic issue.

— Mark

15dd8762c9800308cb7cfdd16ea1a8e74988e06a  Haskell Platform 2013.2.0.0 32bit
rc3.signed.pkg
89e6fb747816af69acabc5c04cee103257855614  Haskell Platform 2013.2.0.0 64bit
rc3.signed.pkg
_______________________________________________
Libraries mailing list
Libraries&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/libraries
&lt;/pre&gt;</description>
    <dc:creator>Mark Lentczner</dc:creator>
    <dc:date>2013-05-21T16:15:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19373">
    <title>Apologies</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19373</link>
    <description>&lt;pre&gt;I want to apologize to wren (and everybody else).  I was tired and 
overreacted when the discussion started veering into making more 
breaking changes.

I don't mind the Foldable changes too much.  My main concerns are:

* loss of monomorphism makes teaching more difficult
* They can be generalized in other useful ways

However, I don't consider those concerns show-stoppers.
&lt;/pre&gt;</description>
    <dc:creator>Gabriel Gonzalez</dc:creator>
    <dc:date>2013-05-21T05:41:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19370">
    <title>foldable flexible bridges (putting foldable+traversable in prelude)Re: Burning bridges</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19370</link>
    <description>&lt;pre&gt;lets see what concerns there are

1) will any code break? Nope! In fact, it's trivial to provide a shim that
only exposes the list monomorphic versions.

2) does the change make learning the language more challenging? No. In
fact, i've encountered *many* more smart people getting confused as to why
the map / fold etc in prelude are all list specific than i've seen people
struggle with type classes. The various list specific versions of the
foldable codes actually **confuses** smart software folks who are starting
to learn haskell for fun.

I can't explain to a smart engineer *any* reason why minimum ::
Ord&amp;lt;http://www.haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:Ord&amp;gt;
a
=&amp;gt; [a] -&amp;gt; a
exists in prelude. I *can* explain why something like minimum ::
(Foldable&amp;lt;http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-Foldable.html#t:Foldable&amp;gt;
 t, Ord&amp;lt;http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-Ord.html#t:Ord&amp;gt;
a)
=&amp;gt; t a -&amp;gt; a   would be useful and deserving of being in the &lt;/pre&gt;</description>
    <dc:creator>Carter Schonwald</dc:creator>
    <dc:date>2013-05-21T05:06:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19366">
    <title>Haskell Platform 2013.2.0.0 Windows installer RC1</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19366</link>
    <description>&lt;pre&gt;Hi all,

I've uploaded the RC1 2013.2.0.0 release candidate installer to

http://code.haskell.org/~refold/HaskellPlatform-2013.2.0.0-rc1-setup.exe

SHA1: fe9a4eee2fe8839eb3b240f15a2af229a110e37f

What's new in 2013.2.0.0-rc1:

   * Updated versions of all packages

Known issues:

   * OpenGL-related libraries are compiled without -split-objs because
of GHC performance issues.
   * Also see http://trac.haskell.org/haskell-platform/wiki/Windows

Unless someone finds serious bugs in this RC, it can be released unchanged.

Enjoy!


&lt;/pre&gt;</description>
    <dc:creator>Mikhail Glushenkov</dc:creator>
    <dc:date>2013-05-21T00:00:15</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19333">
    <title>Traversable.mapM_ missing</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19333</link>
    <description>&lt;pre&gt;On some haskell list I read that for lists,

   mapM_ f l

is more space-efficient that just

   void $ mapM f l

Any reason why mapM_ is missing from Data.Traversable?

Cheers,
Andreas

&lt;/pre&gt;</description>
    <dc:creator>Andreas Abel</dc:creator>
    <dc:date>2013-05-18T21:21:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19300">
    <title>Adding Applicative/Functor instances to all Monads in GHC</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19300</link>
    <description>&lt;pre&gt;Hello everyone,

I recently went through GHC's source, and discovered there are quite a
few instances of Monad that don't have Functor or Applicative instances.
Fixing this is very easy by adding the standard instances (pure = return
etc.), and will not break code.

There is one exception to this: Hoopl defines its own (&amp;lt;*&amp;gt;). However,
since it does not seem to have any packages depend on it otherwise,
renaming this operator is also easily done (the thing is only used ten
times or so). I called it (&amp;lt;*|*&amp;gt;) to complement (|*&amp;gt;&amp;lt;*|), but naming
should be the least important issue here.

Small piece of backstory:
The idea behind this is making GHC future-proof for changing Applicative
to be a superclass of Monad. However, I think adding the Applicative
instances is a good idea regardless of whether this will ever happen, so
that's the only thing I'm proposing right now.

Greetings,
David
&lt;/pre&gt;</description>
    <dc:creator>David Luposchainsky</dc:creator>
    <dc:date>2013-05-16T11:33:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19285">
    <title>proposal/RFC: add bSwap to base in Data.Bits</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19285</link>
    <description>&lt;pre&gt;Hi,

I'm trying to expose some byte swapping (bSwap) capabilities in base, namely
operation to allow to swap endianness on word{16,32,64}, i.e.:

  bswap16 :: Word16 -&amp;gt; Word16
  bswap16 a = (a `shiftR` 8) .|. (a `shiftL` 8)
  ...

I'ld want to propose to extends Bits to do so generically:

  class Bits a where
    ...  
    bSwap : a -&amp;gt; a

I'm attaching a patch that do as explained, and add a default implementation
for bSwap, so that compatibility is assured for existing instances.

&lt;/pre&gt;</description>
    <dc:creator>Vincent Hanquez</dc:creator>
    <dc:date>2013-05-16T06:59:28</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19266">
    <title>stm: newBroadcastTChan and friends (a proposal, and a question)</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19266</link>
    <description>&lt;pre&gt;Hello all,

While looking through the pull requests for stm-chans I came across a
discrepancy in the new stm. Namely, we have the following definitions:

* stm == 2.4
    newBroadcastTChan :: STM (TChan a)
    newBroadcastTChan = do
        dummy_hole &amp;lt;- newTVar TNil
        write_hole &amp;lt;- newTVar TNil
        read &amp;lt;- newTVar dummy_hole
        write &amp;lt;- newTVar write_hole
        return (TChan read write)

    newBroadcastTChanIO :: IO (TChan a)
    newBroadcastTChanIO = do
        dummy_hole &amp;lt;- newTVarIO TNil
        write_hole &amp;lt;- newTVarIO TNil
        read &amp;lt;- newTVarIO dummy_hole
        write &amp;lt;- newTVarIO write_hole
        return (TChan read write)

* stm == 2.4.2
    newBroadcastTChan :: STM (TChan a)
    newBroadcastTChan = do
        write_hole &amp;lt;- newTVar TNil
        read &amp;lt;- newTVar (error ...)
        write &amp;lt;- newTVar write_hole
        return (TChan read write)

    newBroadcastTChanIO :: IO (TChan a)
    newBroadcastTChanIO = do
        dummy_hole &amp;lt;- newTVarIO TNil
        write_hole &amp;lt;- newTVarIO &lt;/pre&gt;</description>
    <dc:creator>wren ng thornton</dc:creator>
    <dc:date>2013-05-13T05:24:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19265">
    <title>ANN: stm-chans 2.0.0</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19265</link>
    <description>&lt;pre&gt;--------------------------------------------
&lt;/pre&gt;</description>
    <dc:creator>wren ng thornton</dc:creator>
    <dc:date>2013-05-13T04:35:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19260">
    <title>HP 2013.2 home stretch, RC2 installers</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19260</link>
    <description>&lt;pre&gt;*We are in the home stretch for Haskell Platform 2013.2!*

The Mac OS X RC2 installers are up:

Haskell Platform 2013.2.0.0 32bit
rc2.signed.pkg&amp;lt;http://www.ozonehouse.com/mark/platform/Haskell%20Platform%202013.2.0.0%2032bit%20rc2.signed.pkg&amp;gt;
Haskell Platform 2013.2.0.0 64bit
rc2.signed.pkg&amp;lt;http://www.ozonehouse.com/mark/platform/Haskell%20Platform%202013.2.0.0%2064bit%20rc2.signed.pkg&amp;gt;


Only real difference in these from RC1 is packaging: the Cabal doc is now
included. There is no update to source tarball RC1, which is still there
too. I expect these to be renamed the official release within a week.

*Packagers:* Please produce Release Candidates. The package version list
shouldn't change, unless any of you find an issue.

- Mark
_______________________________________________
Libraries mailing list
Libraries&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/libraries
&lt;/pre&gt;</description>
    <dc:creator>Mark Lentczner</dc:creator>
    <dc:date>2013-05-11T17:55:42</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19233">
    <title>Control.Monad proposal: Add whenJust</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19233</link>
    <description>&lt;pre&gt;I would like to propose the addition of

whenJust :: Monad m =&amp;gt; Maybe a -&amp;gt; (a -&amp;gt; m ()) -&amp;gt; m ()
whenJust (Just x) f = f x
whenJust _        _ = return ()

to Control.Monad, in the section

   "Conditional execution of monadic expressions"

next to

   guard :: MonadPlus m =&amp;gt; Bool -&amp;gt; m ()
   when :: Monad m =&amp;gt; Bool -&amp;gt; m () -&amp;gt; m ()
   unless :: Monad m =&amp;gt; Bool -&amp;gt; m () -&amp;gt; m ()


Why?

It would allow us to write more readable code and fit well into the
group of similar functions of this style.

Compare

   mUser &amp;lt;- lookupUser

   whenJust mUser email

or

   whenJust mUser $ \user -&amp;gt; do
      putStrLn "Mailing!"
      email user

with some currently available alternatives:


   case mUser of
      Just user -&amp;gt; do putStrLn "Mailing!"
                      email user
      Nothing   -&amp;gt; return ()

(Default base case clutter.)


   import Data.Foldable

   forM_ mUser $ \user -&amp;gt; do
     putStrLn "Mailing!"
     email user

(Not too intuitive/well-named here and "Ambiguous occurrence forM_"
clash with Control.Monad.)
&lt;/pre&gt;</description>
    <dc:creator>Niklas Hambüchen</dc:creator>
    <dc:date>2013-05-10T06:13:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19230">
    <title>HP 2013.2 RC1 Mac OS X Installers</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19230</link>
    <description>&lt;pre&gt;The Mac OS X installers for HP 2013.2 RC 1 are up:

Haskell Platform 2013.2.0.0 32bit
rc1.signed.pkg&amp;lt;http://www.ozonehouse.com/mark/platform/Haskell%20Platform%202013.2.0.0%2032bit%20rc1.signed.pkg&amp;gt;
Haskell Platform 2013.2.0.0 64bit
rc1.signed.pkg&amp;lt;http://www.ozonehouse.com/mark/platform/Haskell%20Platform%202013.2.0.0%2064bit%20rc1.signed.pkg&amp;gt;


This corresponds to what is currently checked in to the pre-release branch
on github:

https://github.com/haskell/haskell-platform/tree/pre-release


There is at least one small wibble with these: The cabal documentation is
missing. So I expect at least one small turn before final release.... but
this is pretty close.

- Mark
_______________________________________________
Libraries mailing list
Libraries&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/libraries
&lt;/pre&gt;</description>
    <dc:creator>Mark Lentczner</dc:creator>
    <dc:date>2013-05-08T07:41:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19226">
    <title>Building the Platform</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19226</link>
    <description>&lt;pre&gt;The current build of the platform has grown over the years to a somewhat
convoluted collection of shell scripts, makefiles, autoconf, and some
custom Haskell. It is further complicated by three distinct stages: making
the source distribution, building the packages, bundling for distribution.
Lastly, I suspect that each distribution (Mac, Windows, and n × unix-like)
has it's own path through these stages.

I've done some amount of rework on the process over the last two years, but
I'm thinking it is time for wholesale replacement. I'm considering using
Shake &amp;lt;http://community.haskell.org/~ndm/shake/&amp;gt; to replace all three
stages as one build. Distributions could choose to either re-cast their
process into this Shake program, or work from the source distribution.

The source distribution currently contains scripts and other bits for
generically building the platform from source. I currently have no way to
know which parts of those bits people rely on for their distributions. This
transition would substantially&lt;/pre&gt;</description>
    <dc:creator>Mark Lentczner</dc:creator>
    <dc:date>2013-05-05T15:55:34</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19225">
    <title>HP 2013.2 RC1 Source Tar Ball</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19225</link>
    <description>&lt;pre&gt;The source tar-ball for HP 2013.2 RC 1 is up:

http://www.ozonehouse.com/mark/platform/haskell-platform-2013.2.0.0-rc1.tar.gz

This corresponds to what is currently checked in to the pre-release branch
on github:

https://github.com/haskell/haskell-platform/tree/pre-release


*Packagers:* Please produce an RC1 candidate from the above.

I'm having some trouble producing a Mac release (Xcode woes again...) but
expect it in a few days.

— Mark
_______________________________________________
Libraries mailing list
Libraries&amp;lt; at &amp;gt;haskell.org
http://www.haskell.org/mailman/listinfo/libraries
&lt;/pre&gt;</description>
    <dc:creator>Mark Lentczner</dc:creator>
    <dc:date>2013-05-05T15:37:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19214">
    <title>A single general modification function for Map and IntMap proposal</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19214</link>
    <description>&lt;pre&gt;There is a list of problems with the current "Map" and "IntMap" modification interfaces:

   - they are filled with quirky and too specialized functions

   - they are not consistent in terms of how equally named functions behave: http://hackage.haskell.org/packages/archive/containers/latest/doc/html/Data-IntMap-Strict.html#v:updateLookupWithKey

   - they still don't cover some important scenarios of use

Because of the above I have very often found myself in requirement for the following function:

   withItem ::
     (Ord k) =&amp;gt;
     k -&amp;gt;
     (Maybe i -&amp;gt; (r, Maybe i)) -&amp;gt;
     Map k i -&amp;gt; (r, Map k i)
   withItem k f m = 
     let
       item = Map.lookup k m
       (r, item') = f item
       m' = Map.update (const item') k m
     in (r, m')

It covers all the imaginable scenarios of modification operations: delete, update, replace, - yet it also provides one with ability to extract the modified data and not only. The problem is that this implementation involves a repeated lookup for the same item: first wi&lt;/pre&gt;</description>
    <dc:creator>Nikita Volkov</dc:creator>
    <dc:date>2013-04-30T13:18:48</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19210">
    <title>Proposal: When possible, give more useful exceptions fromrawSystem and friends</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19210</link>
    <description>&lt;pre&gt;
Hi all,

Currently, if you try to use rawSystem to run a program that doesn't
exist, you will just get a bad error code as a result, e.g. this
program:

    import System.IO.Error
    import System.Process

    main :: IO ()
    main = do (rawSystem "/bin/true" [] &amp;gt;&amp;gt;= print)
                `catchIOError` \e -&amp;gt; putStrLn ("Exc: " ++ show e)
              (rawSystem "/bin/false" [] &amp;gt;&amp;gt;= print)
                `catchIOError` \e -&amp;gt; putStrLn ("Exc: " ++ show e)
              (rawSystem "/non/existent" [] &amp;gt;&amp;gt;= print) 
                `catchIOError` \e -&amp;gt; putStrLn ("Exc: " ++ show e)
              putStrLn "Done"

prints:

    ExitSuccess
    ExitFailure 1
    ExitFailure 127
    Done

However, if we are on a platform that supports vfork, then we can pass
information from the child process back to the parent process as they
share address space. With the attached patch we instead get:

    ExitSuccess
    ExitFailure 1
    Exc: resolveProcessHandle: does not exist (No such file or directory)

(and it should be easy t&lt;/pre&gt;</description>
    <dc:creator>Ian Lynagh</dc:creator>
    <dc:date>2013-04-28T13:36:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19202">
    <title>new MonadRandom instance; and maintainership</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19202</link>
    <description>&lt;pre&gt;Hi all,

I would like to add a derived MonadPlus instance for both Rand and
RandT.  Also, since it seems that MonadRandom has no maintainer I
propose to take on its maintainership.  Any
comments/objections/etc. welcome.

-Brent
&lt;/pre&gt;</description>
    <dc:creator>Brent Yorgey</dc:creator>
    <dc:date>2013-04-24T18:38:01</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19199">
    <title>ANN: data-textual: Human-friendly textual representations</title>
    <link>http://comments.gmane.org/gmane.comp.lang.haskell.libraries/19199</link>
    <description>&lt;pre&gt;Hello lists,

I'm pleased to announce the first release of data-textual[1], a library 
that provides human-friendly counterparts (called Printable/Textual) of 
the compiler-friendly Show/Read type classes. The library is intended to 
be used for printing and parsing of non-compound and non-polymorphic 
compound data (e.g. numbers, network and hardware addresses, date/time, 
etc).

A quick example (vs network-ip[2] library):

λ&amp;gt; import Data.Maybe (fromJust)
λ&amp;gt; import Data.Textual
λ&amp;gt; import Network.IP.Addr

λ&amp;gt; let x = fromString "[dead::b:e:e:f]:123" :: Maybe Inet6Addr
λ&amp;gt; x
Just (InetAddr {inetHost = ip6FromWords 0xdead 0x0 0x0 0x0 0xb 0xe 0xe 
0xf, inetPort = 123})
λ&amp;gt; toString (fromJust x)
"[dead::b:e:e:f]:123"

λ&amp;gt; let y = fromStringAs aNet4Addr "192.168.100.1/24"
λ&amp;gt; y
Just (netAddr (ip4FromOctets 192 168 100 1) 24)
λ&amp;gt; toText (netPrefix $ fromJust y)
"192.168.100.0"

[1] http://hackage.haskell.org/package/data-textual
[2] http://hackage.haskell.org/package/network-ip

________________________________&lt;/pre&gt;</description>
    <dc:creator>Mikhail Vorozhtsov</dc:creator>
    <dc:date>2013-04-24T06:18:51</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.haskell.libraries">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.haskell.libraries</link>
  </textinput>
</rdf:RDF>
