March 23, 2011

Haskell Weekly News: Issue 174

Welcome to issue 174 of the HWN, a newsletter covering developments in the Haskell community. This release covers the week of March 13-19.


JP Moresmau announced a new release of EclipseFP with support for ghc 7!

S. Doaitse Swierstra announced the release of version 2.7.0 to the uu-parsinglib library to hackage.

Vincent Gerard informed us that he has taken over maintainership of hsmagick, which is "a FFI bindings library to ImageMagick." He is pleased to announce the 0.5 release of the library.

Malte Harder announce the first release of the Craftwerk graphics library for 2d vector graphics.

Corey O'Connor annouced a new release of his VTY library.

Brent Yorgey announced the release of the special Poetry and Fiction Edition of The Monad.Reader. Thanks for putting this together Brent!

Gregory D. Weber announced version 1.2.4 of his Sifflet and sifflet-lib. "This is a compatibility release for HXT >= 9.1."

Edward Kmett remminded us that the Google Summer of Code is upon us. Follow the link to see the sign up information.

Quotes of the Week

  • ddarius: *ddarius is more of a glass SUM_n (-1)^n full person.
  • monochrom: some kind of lazy evaluation is already known to highschool kids. teachers tell you that in a*(b+c), "evaluate b+c first", right? well, I challenge you to take 0*(389238493+97283748) and find one single student who faithfully evaluate 389238493+97283748 first.
  • hpc: in soviet russia, yoda speaks flawless english
  • lambdabot: trololololo
  • hpc: jokes are subject to an incompleteness theorem; if you can prove they are funny, they were never good jokes to begin with
  • hpc: when all you have is Haskell, everything looks like a research paper
  • Edward Kmett:Clearly we need some sort of xbox live-like achievement system for these. Achievement Unlocked: Stumped Oleg!

Top Reddit Stories

  • has been accepted for the 2011 Google Summer of Code
    From (, scored 48 with 1 comments.
    Read on reddit.
    Read the original post.
  • Haskell's Niche: Hard Problems
    From (, scored 47 with 17 comments.
    Read on reddit.
    Read the original post.
  • A little care and feeding can go a long way
    From (, scored 39 with 6 comments.
    Read on reddit.
    Read the original post.
  • The reception of monads circa 1995...
    From (self.haskell), scored 35 with 1 comments.
    Read on reddit.
  • BlazeHtml: a blazingly fast HTML combinator library
    From (, scored 29 with 18 comments.
    Read on reddit.
    Read the original post.
  • Simon Peyton Jones: Managing parallelism: embrace diversity, but control side effects
    From (, scored 28 with 12 comments.
    Read on reddit.
    Read the original post.
  • EZYang: Mutation is frequently not what people expect ; mutation is not modular, and mutation is complicated.
    From (, scored 26 with 0 comments.
    Read on reddit.
    Read the original post.
  • Functor is to Lens as Applicative is to Biplate: Introducing Multiplate
    From (, scored 25 with 19 comments.
    Read on reddit.
    Read the original post.
  • Monad.Reader special poetry and fiction edition
    From (, scored 23 with 1 comments.
    Read on reddit.
    Read the original post.
  • Functional flocks : modelling and visualizing flocking behavior in Haskell
    From (, scored 22 with 0 comments.
    Read on reddit.
    Read the original post.

Top StackOverflow Answers

  • Why does application of `sequence` on List of Lists lead to computation of its Cartesian Product? votes: 12
    This works because using lists as monads in Haskell makes them model
    indeterminism. Consider:
    sequence [[1,2],[3,4]]
    By definition this is the same as:
    do x <- [1,2]
       y <- [3,4]
       return [x,y]
    Just read it as "First a choice between 1 and 2, then a choice between
    3 and 4". The list monad will now accumulate all possible outcomes -
    hence the ...
  • In GHCi, why does the kind of the function arrow `:kind (->)` include question marks `(->) :: ?? -&ht; ? -> *`? votes: 11
    The ? and ?? kinds refer to GHC extensions, specifically unboxed
    types. has
    a diagram showing relationships between the extended kinds ? (all
    possible types), # (unboxed types), ?? (boxed or normal unboxed types
    — "least upper bound of # and *"), (#) (unboxed tuples, which can only
    be used in a ...
  • How to use (->) instances of Monad and confusion about (->) votes: 11
    For a given type r, the function of type r -> a can be thought of as a
    computation delivering an a using an environment typed r. Given two
    functions r -> a and a -> (r -> b), it's easy to imagine that one can
    compose these when given an environment (again, of type r).
    But wait! That's exactly what monads are about!
    So we can create an instance ...
  • How and why is ap defined as liftM2 id in Haskell votes: 10
    The type variable a from id can be instantiated at any type, and in
    this case that type is a -> b.
    So we are instantiating id at (a -> b) -> (a -> b). Now the type
    variable a1 from liftM2 is being instantiated at (a -> b), a2 is being
    instantiated at a, and r is being instantiated at b.
    Putting it all together, liftM2 is instantiated at ...
  • What "reify" and "reification" means in the context of (functional?) programming? votes: 8
    So I read up on this, and it is pretty much what it means: taking an
    abstract concept and making it concrete. Or, there is a proxy that
    represents the abstract concept. For example, in Lisp, the concept of
    procedure abstraction and application is reified when you use lambdas.
    Reification by itself is a broad concept and not just applicable to
    functional ...

Top StackOverflow Questions

About the Haskell Weekly News

To help create new editions of this newsletter, please send stories to I'm in dire need of finding good "quotes of the week". If you happen to come across any, please don't hesitate to send it along.

Until next time,
Daniel Santa Cruz

No comments: