[Haskell-cafe] Haskell Weekly News: Issue 172

Daniel Santa Cruz dstcruz at gmail.com
Thu Mar 10 04:28:00 CET 2011

   Welcome to issue 172 of the HWN, a newsletter covering developments in
   the [1]Haskell community. This release covers the week of February 27
   to March 05, 2011.


   Jasper Van der Jeugt [2]announced the release of version 3 of Hakyll.
   He informs us that this is a complete re-write, and not backwards

   Horvath Zoltan [3]informed us about the 4th Central European Functional
   Programming School (CEFP 2011), which is to take place in Eotvos Lorand
   University, Budapest, Hungary, from June 14-24, 2011. "The invited
   lecturers are the most prominent researchers in the field in Europe,
   and they will present state-of-the-art functional programming

   Janis Voigtlander [4]issued a call for papers for the 20th
   International Workshop on Functional and (Constraint) Logic Programming
   (WFLP 2011) to be held in Odense, Denmark, on July 19, 2011.

   Michael Hanus [5]issued a call for papers for the 13th International
   ACM SIGPLAN Symposium on Principles and Practice of Declarative
   Programming (PPDP 2011) to be held in Odense, Denmark, on July 20-22,

   Trystan Spangler [6]released a new version (0.3.0) of hspec, with
   "improvements including fixing a base dependency problem, and better
   reporting of failed examples."

   Magnus Therming [7]released new versions of dataenc (0.14), and
   omnicodec (0.5). "It contains a large change to the API. The old,
   rather simplistic, lazy API has been removed. It has been replaced by
   an API based on incremental encoding/decoding. This should make the
   library easier to use together with left-fold enumerators..."

   Rogan Creswick [8]announced that cabal-dev has been uploaded to
   hackage. "We strongly suggest that everyone upgrade to this release,
   since this release specifically addresses changes in Cabal-1.10 and
   newer, which the latest cabal-install new uses."

   Frederick Ross [9]announced a minor upgrade to haskell-pgm (0.1.2),
   with a minor upgrade to the library to make it work with GHC 7.

   Uwe Schmidt [10]announced an update to hxt to version 9.1.

   Eric Kow [11]announced that the date and venue for the sixth Darcs
   Hacking sprint has been confirmed for Paris, April 1-3, 2011.

   Ian Lynagh and the GHC Team [12]announced a new patchlevel release of
   GHC. "This release contains a number of bugfixes relative to 7.0.1, so
   we recommend upgrading."

   Denis Bueno [13]announced new releases of funsat (0.6.2) and bitset

   Michal Konecny [14]announced version 0.3.2 of hmpfr, bindings to the
   MPFR arbitrary precision floating point arithmetic library. "The
   changes in this version are quite small but significant."

   Jonathan Daugherty [15]announced version 1.0 of the vty-ui terminal
   user interface library. "The vty-ui library is a complete interactive
   user interface development toolkit for terminal applications."

   Jason Dusek [16]announced his now bash-0.0.0, which has "types and
   functions for generation of Bash scripts, with safe escaping and
   composition of large subsets of Bash statements and expressions."

Quotes of the Week

     * lpsmith: I didn't take the time to figure out what should be done
       in finite cases.

     * <companion_cube> edwardk, you mean it's 2 phD/nick in average ? :)
       <edwardk> clearly this is why SPJ stays away, he doesn't want to
       dilute that metric.

     * edwardk: Haskell 98 is a laudable goal.

     * douglas-adams: I love deadlines, I especially like the swooshing
       sound they make as they fly past

     * kmc: the way to convert imperative code to functional is to think
       about what your code actually means, and then throw out most of the
       irrelevant details that imperative programming has forced on you

     * MonadsSuck: man, I hate it when an adjoint pair of functors get
       together and compose. So damn annoying

     * bwright: I don't get it everyone keeps telling me java is a safe
       language but it melted the plastic on my eeepc900

     * danka: you could be a monadic vampire. I hear they bleed

Top Reddit Stories

     * ANNOUNCE: GHC version 7.0.2: From (haskell.org), scored 46 with
       comments. Read on [17]reddit or the [18]original post.

     * Greenfield Haskell: From (self.haskell), scored 36 with 188
       comments. Read on [19]reddit or the [20]original post.

     * Patches for monad comprehensions are in and will be in the upcoming
       GHC 7.2 release: From (hackage.haskell.org), scored 34 with 15
       comments. Read on [21]reddit or the [22]original post.

     * GHC 7.0.2 released!: From (haskell.org), scored 32 with 10
       comments. Read on [23]reddit or the [24]original post.

     * Haskell on Android: From (self.haskell), scored 31 with 22
       comments. Read on [25]reddit or the [26]original post.

     * Do you think Haskell will ever catch on?: From (self.haskell),
       scored 26 with 63 comments. Read on [27]reddit or the [28]original

     * hakyll 3.0 released (static site generator): From (jaspervdj.be),
       scored 25 with 1 comments. Read on [29]reddit or the [30]original

     * New release of cabal-dev: sandboxed, reproducible build
       environments for Haskell: From (haskell.org), scored 24 with 9
       comments. Read on [31]reddit or the [32]original post.

     * News on Well-Typed, the Parallel GHC Project, and Eric Kow joins
       the team.: From (well-typed.com), scored 22 with 3 comments. Read
       on [33]reddit or the [34]original post.

     * Build Yourself a Bluetooth Controlled Six-Legged Robot : A
       Neighborhood of Infinity: From (blog.sigfpe.com), scored 21 with
       comments. Read on [35]reddit or the [36]original post.

Top StackOverflow Answers

     * [37]Goto in Haskell: Can anyone explain this seemingly insane
       effect of continuation monad usage? votes: 14

       Here's a somewhat informal answer, but hopefully useful. getCC'
       returns a continuation to the current point of execution; you can
       think of it as saving a stack frame. The continuation returned by
       getCC' has not only ContT's state at the point of the call, but
       also the state of any monad above ContT on the stack. When you
       restore that state by calling the ...

     * [38]How do Haskell compilers decide whether to allocate on the heap
       or the stack? votes: 13

       When you call a function like this

       f 42 (g x y)

       then the runtime behaviour is something like the following:

       p1 = malloc(2 * sizeof(Word))
       p1[0] = &Tag_for_Int
       p1[1] = 42
       p2 = malloc(3 * sizeof(Word))
       p2[0] = &Code_for_g_x_y
       p2[1] = x
       p2[2] = y
       f(p1, p2)

       That is, arguments are usually passed as pointers to objects on
       the heap like in Java, but ...

     * [39]Quick question about Arrow operators votes: 11

     (***) :: (Arrow a) => a b c -> a b' c' -> a (b, b') (c, c')

     So specialize a to -> and we get:

     (***) :: (Arrow a) => (b -> c) -> (b' -> c') -> (b, b') -> (c, c')

     And that's great, except we want to, for whatever reason, take
     the first two arguments as a single pair instead. But that's
     easy, we just uncurry.

     Prelude ...

     * [40]QuickCheck: defining Arbitrary instance in terms of other
       Arbitraries votes: 9

       I'd do it like this:

       instance Arbitrary C
       where arbitrary = do a <- arbitrary
                            b <- arbitrary
                            return (C a b)

       Although sclv's idea of using liftM2 from Control.Monad is
       probably better:

       instance Arbitrary C
            where arbitrary = liftM2 C arbitrary arbitrary

Top StackOverflow Questions

     * Running a Haskell program on the Android OS (votes: 21, answers: 1)
     * Goto in Haskell: Can anyone explain this seemingly insane effect of
       continuation monad usage? (votes: 18, answers: 2) [42]read
     * Proving equality of streams (votes: 15, answers: 1) [43]read
     * Rotate the first argument to a function to become nth (votes: 12,
       answers: 7) [44]read
     * How do Haskell compilers decide whether to allocate on the heap or
       the stack? (votes: 9, answers: 2) [45]read

About the Haskell Weekly News

   To help create new editions of this newsletter, please send stories to
   dstcruz at gmail.com. 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


   1. http://haskell.org/
   2. http://article.gmane.org/gmane.comp.lang.haskell.hakyll/128
   3. http://article.gmane.org/gmane.comp.lang.haskell.general/18527
   4. http://article.gmane.org/gmane.comp.lang.haskell.general/18528
   5. http://article.gmane.org/gmane.comp.lang.haskell.general/18530
   6. http://article.gmane.org/gmane.comp.lang.haskell.general/18533
   7. http://article.gmane.org/gmane.comp.lang.haskell.libraries/15426
   8. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86897
   9. http://article.gmane.org/gmane.comp.lang.haskell.general/18542
  10. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86922
  11. http://article.gmane.org/gmane.comp.version-control.darcs.user/25916
  12. http://article.gmane.org/gmane.comp.lang.haskell.general/18535
  13. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86937
  14. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86882
  15. http://article.gmane.org/gmane.comp.lang.haskell.general/18540
  16. http://article.gmane.org/gmane.comp.lang.haskell.cafe/86975
  17. http://www.reddit.com/r/haskell/comments/fwk78/announce_ghc_version_702/
  18. http://www.haskell.org/pipermail/haskell/2011-March/022610.html
  19. http://www.reddit.com/r/haskell/comments/fvabx/greenfield_haskell/
  20. file://localhost/r/haskell/comments/fvabx/greenfield_haskell/
  21. http://www.reddit.com/r/haskell/comments/fxjcl/patches_for_monad_comprehensions_are_in_and_will/
  22. http://hackage.haskell.org/trac/ghc/ticket/4370#comment:48
  23. http://www.reddit.com/r/haskell/comments/fwkdh/ghc_702_released/
  24. http://www.haskell.org/ghc/download_ghc_7_0_2
  25. http://www.reddit.com/r/haskell/comments/ful84/haskell_on_android/
  26. http://www.reddit.com/r/haskell/comments/ful84/haskell_on_android/
  27. http://www.reddit.com/r/haskell/comments/ftxc7/do_you_think_haskell_will_ever_catch_on/
  28. http://www.reddit.com/r/haskell/comments/ftxc7/do_you_think_haskell_will_ever_catch_on/
  29. http://www.reddit.com/r/haskell/comments/fusve/hakyll_30_released_static_site_generator/
  30. http://jaspervdj.be/hakyll/tutorial.html
  31. http://www.reddit.com/r/haskell/comments/fx47b/new_release_of_cabaldev_sandboxed_reproducible/
  32. http://www.haskell.org/pipermail/haskell-cafe/2011-March/089831.html
  33. http://www.reddit.com/r/haskell/comments/fw311/news_on_welltyped_the_parallel_ghc_project_and/
  34. http://www.well-typed.com/blog/51
  35. http://www.reddit.com/r/haskell/comments/ftxzx/build_yourself_a_bluetooth_controlled_sixlegged/
  36. http://blog.sigfpe.com/2011/02/build-yourself-bluetooth-controlled-six.html
  37. http://stackoverflow.com/questions/5193876/goto-in-haskell-can-anyone-explain-this-seemingly-insane-effect-of-continuation/5203603#5203603
  38. http://stackoverflow.com/questions/5132350/how-do-haskell-compilers-decide-whether-to-allocate-on-the-heap-or-the-stack/5132862#5132862
  39. http://stackoverflow.com/questions/5200462/quick-question-about-arrow-operators/5200788#5200788
  40. http://stackoverflow.com/questions/5134259/quickcheck-defining-arbitrary-instance-in-terms-of-other-arbitraries/5134632#5134632
  41. http://stackoverflow.com/questions/5151858/running-a-haskell-program-on-the-android-os
  42. http://stackoverflow.com/questions/5193876/goto-in-haskell-can-anyone-explain-this-seemingly-insane-effect-of-continuation
  43. http://stackoverflow.com/questions/5179821/proving-equality-of-streams
  44. http://stackoverflow.com/questions/5188212/rotate-the-first-argument-to-a-function-to-become-nth
  45. http://stackoverflow.com/questions/5132350/how-do-haskell-compilers-decide-whether-to-allocate-on-the-heap-or-the-stack

More information about the Haskell-Cafe mailing list