News aggregator

ANNOUNCE: Parsed 0.0.1

haskell-cafe - Wed, 04/01/2015 - 8:49am
I'm pleased to announce the first release of the Parsed library (pronounced par-séd). Parsed is a reimplementation of Haskell's excellent Parsec library in the Unix shell. In particular, the Unix pipe operator | corresponds exactly to Haskell's Applicative bind *>. Here's a quick example to get a feel for the syntax. The following bash one liner creates a parser for matching balanced parenthesis: ``` parens() { choice "$1" "match '(' | parens \"$1\" | match ')'"; } ``` For more detailed examples and implementation notes, please see the Parsed paper accepted at SIGBOVIK2015: You can download Parsed from its github page at:
Categories: Offsite Discussion

Functor is now a superclass of Monad in GHC HEAD

Haskell on Reddit - Wed, 04/01/2015 - 7:55am

Happy April, everyone

submitted by tel
[link] [21 comments]
Categories: Incoming News


General haskell list - Wed, 04/01/2015 - 7:07am
Three of us have been working on Arion for a week or two now. It's a watcher and runner for Hspec tests. It associates source files with test files, watches the file system, and when a file changes it runs the corresponding test files instead of running all the test files, making the process of red-green-refactor faster. We are happy to announce that we have a nice and stable version ( Thanks to the folks at for listing our project on their website. To know more, please visit - Feedback/Feature Requests/Everything else welcome. _______________________________________________ Haskell mailing list Haskell< at >
Categories: Incoming News

An Easy Solution to PVP Bounds and Cabal Hell

haskell-cafe - Wed, 04/01/2015 - 5:22am
Recently there has been some discussion about how we can fix the problem of “Cabal Hell”. Some people advocate restrictive upper bounds, to prevent packages from being broken by new updates. Some other people point out that too-restrictive bounds can lead to bad install plans, since some packages might want newer versions of some dependencies, and others older versions. Still other people say that we can _retroactively_ fix upper bounds (in either direction) by modifying cabal files using the new features in Hackage. Some people think this is a terrible idea because it looks like we are mutating things, and this confuses hashes. In turn, these people support either nix or a nix-like approach by which packages have hashes that encompass the full versions of all their transitive dependencies. With that in hand, we can cache builds and mix-and-match to build the precise environment we want for each package while reducing redundant computation. However, the cache of all the various binary combinations may st
Categories: Offsite Discussion

Philip Wadler: Pension cuts - respond to USS

Planet Haskell - Wed, 04/01/2015 - 4:28am

The UCU has lain down its placards and ended the strike to avoid cuts to pensions. Our one remaining hope is for members to make their outrage known in the USS consultation exercise, which ends 22 May 2015. I hope everyone with a USS pension will respond. Suggested responses from UCU Left and UCU are linked; please comment below, especially to list other suggested responses.

Universities UK argue that the reductions are necessary to avoid a deficit, but their claim has been widely criticised. A group of prominent statisticians point out Universities UK inflated the deficit by assuming a buoyant economy when predicting future salaries but assuming a recession when predicting investment returns.

In 2011, Universities UK imposed vastly reduced pensions on new hires. Old hires who pay into the pension fund for forty years receive a pension of one-half their final salary; new hires who do the same receive a pension of one-half their average salary. Basing pensions on average rather than final salary may be sensible, but to do so with no little or no adjustment in multiplier suggests employers used this as an excuse to slip in a large cut; new hires receive about 2/3 the benefits received by old hires. All staff also suffered other cuts to pensions: additional caps and less good adjustment for inflation. At the time, it was predicted that within a few years old hires would be moved to the inferior scheme for new hires, and that is what has now come to pass.

Like many in USS, employees and employers alike, I am concerned that the changes will make UK academia a less attractive option for potential scholars.

Categories: Offsite Blogs

Journal of Functional Programming - Call for PhD Abstracts

Haskell on Reddit - Wed, 04/01/2015 - 2:20am


Journal of Functional Programming

Deadline: 30th April 2015


Many students complete PhDs in functional programming each year, but there is currently no common location in which to promote and advertise the resulting work. The Journal of Functional Programming would like to change that!

As a service to the community, JFP recently launched a new feature, in the form of a regular publication of abstracts from PhD dissertations that were completed during the previous year. The abstracts are made freely available on the JFP website, i.e. not behind any paywall, and do not require any transfer for copyright, merely a license from the author.

Please submit dissertation abstracts according to the instructions below. A dissertation is eligible if parts of it have or could have appeared in JFP, that is, if it is in the general area of functional programming. JFP will not have these abstracts reviewed. We welcome submissions from both the PhD student and PhD advisor/ supervisor although we encourage them to coordinate.


Please submit the following information to Graham Hutton by 30th April 2015.

o Dissertation title: (including any subtitle)

o Student: (full name)

o Awarding institution: (full name and country)

o Date of PhD award: (month and year; depending on the institution, this may be the date of the viva, corrections being approved, graduation ceremony, or otherwise)

o Advisor/supervisor: (full names)

o Dissertation URL: (please provide a permanently accessible link to the dissertation if you have one, such as to an institutional repository or other public archive; links to personal web pages should be considered a last resort)

o Dissertation abstract: (plain text, maximum 1000 words; you may use \emph{...} for emphasis, but we prefer no other markup or formatting in the abstract, but do get in touch if this causes significant problems)

Please do not submit a copy of the dissertation itself, as this is not required. JFP reserves the right to decline to publish abstracts that are not deemed appropriate.


Graham Hutton School of Computer Science University of Nottingham Nottingham NG8 1BB United Kingdom

submitted by grahamhutton
[link] [3 comments]
Categories: Incoming News

Bird's Functional Pearls in OCaml

Haskell on Reddit - Wed, 04/01/2015 - 2:11am

If anyone is interested in Richard Bird's Pearls of Functional Algorithm Design, there's an interesting site that's implementing the pearls in OCaml instead of Haskell.


Lots of explanations of the algorithms with diagrams.

submitted by derek-mcloughlin
[link] [2 comments]
Categories: Incoming News

Data.EnumMap ?

haskell-cafe - Tue, 03/31/2015 - 6:42pm
Dear Cafe, in containers, we have Data.IntMap/IntSet . Because of the underlying implementation (patricia trees), keys/elements indeed have to be Int (we need their bits). This is a conflict with type-safety: I try to avoid Int, and use some newtype T = T Int instead. E.g., I want to distinguish several different indices for the same structure, like row and column numbers in (sparse) matrices, or vertices in bipartite graphs. So, I made these trivial wrappers EnumMap and EnumSet: Is this reasonable (do from/toEnum really have zero cost)? Would this be a useful addition to containers? - J.W.
Categories: Offsite Discussion

base-compat updated for recent AMP/Foldable/Traversable changes

Haskell on Reddit - Tue, 03/31/2015 - 6:24pm

I updated base-compat to incorporate the AMP/Foldable/Traversable changes from base-

This update allows you to write code that relies on the new Prelude and works seamlessly with all versions of GHC back to 6.12.1, e.g.:

import Prelude () import Prelude.Compat main :: IO () main = mapM_ print (Just 23)

Note that we use

mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()

from Data.Foldable here, which is only exposed from Prelude since base-

(see the README for more information)

submitted by solirc
[link] [2 comments]
Categories: Incoming News

Opt-in upper-bounds notification service?

haskell-cafe - Tue, 03/31/2015 - 6:03pm
Hi, I don’t always have a complete oversight of what our ecosystem provides... do we already have a way to (opt-in) get a mail when a dependency of one of my packages was uploaded in a version that is beyond the upper-bound specified by my packages? Currently I get pinged by Michael Snoyberg when that happens, e.g. in, but that’s always a short while after the problem, and I’d like to fix this before anyone manually notices. If someone would hack up such as service, I’d be happy to use it. Greetings, Joachim
Categories: Offsite Discussion

Template haskell and the dependencies of thegenerated executable

haskell-cafe - Tue, 03/31/2015 - 5:37pm
When I use template haskell to generate some code at compile time and splice it in my program, the generated executable still depends on template haskell (in case of -dynamic), or the Template haskell library is included in my executable (in the case of -static). Isn't that unnecessary? For example. Suppose that I use the almost trivial raw-strings-qq package to implement a hello world program: {-# LANGUAGE QuasiQuotes #-} import Text.RawString.QQ (r) main = putStrLn [r|Bonjour tout le monde|] Then the r quasi quoter runs at compile time and generates a string literal. So basically, the program that gets compiled is the following: main = putStrLn "Bonjour tout le monde" Despite that template haskell is only used at compile time, the generated executable (compiled with the -dynamic flags) depends on the following libraries: libHSraw-strin
Categories: Offsite Discussion

Edward Z. Yang: Protected: Expression-level Backpack

Planet Haskell - Tue, 03/31/2015 - 5:29pm

This content is password protected. To view it please enter your password below:


Categories: Offsite Blogs

ANN: base-compat updated for AMP + request forcollaboration

haskell-cafe - Tue, 03/31/2015 - 2:53pm
Hi, I updated base-compat[1] for the recent AMP/Foldable/Traversable changes and base- A new version 0.6.0 is on Hackage. The purpose of base-compat is to provide a way to write code that works with multiple versions of GHC without the need for CPP. The idea is to have .Compat modules (e.g. Control.Exception.Compat) that provide the same interface across all supported versions of GHC (we test GHC 7.* on travis and I test 6.12.3 manually). The main focus of this release is to make Prelude.Compat as complete as possible to help with the AMP/Foldable/Traversable transition. Prelude.Compat now exposes the exact same interface as Prelude from base- It can be used together with -XNoImplicitPrelude to write code that works with all supported versions of GHC, e.g.: {-# LANGUAGE NoImplicitPrelude #-} import Prelude.Compat main :: IO () main = mapM_ print (Just 23) Prelude.Compat is complete and we have tests that ensure that the interface is the same for all supported versions
Categories: Offsite Discussion

Looking for Haskell contract work

haskell-cafe - Tue, 03/31/2015 - 2:50pm
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Hallo Haskell friends, My company[0] uses Haskell for most of our work. Speaking of work, we are currently looking for some more of it. If anyone has some work (FSVO "work" that includes hacking, advising, teaching, etc.), please contact me off-list. Thanks! [0] plaimi: <>. - -- Alexander alexander< at > -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iF4EAREIAAYFAlUaphUACgkQRtClrXBQc7UySwD/digSIVDgS25tRW4zUtfoO/E3 /vWOMwMRnn9nfFcirrAA/0fFsl8WogNG/J2AP188517xcV4zLV1up7YtUsbEWRnh =JbNc -----END PGP SIGNATURE-----
Categories: Offsite Discussion

SHA256SUMS file for GHC 7.4.2

glasgow-user - Tue, 03/31/2015 - 1:02pm
Hi, For GHC 7.10.1 or GHC 7.8.4 I could find the SHA256SUMS files in and, respectively. The SHA256SUMS file for GHC 7.4.2 isn't in Where can I find this file? Thanks,
Categories: Offsite Discussion