Richard Eisenberg | 8 Oct 14:24 2015

Self Nomination

I would like to nominate myself for the Haskell Prime committee. I have been studying Haskell intensively
as I'm working toward my PhD at the University of Pennsylvania, though I started programming in Haskell
only in 2011.

* I have designed and implemented several new features in GHC:
  - Closed type families
  - Coercible/roles
  - Several Template Haskell improvements
* I am currently putting the final touches on a large patch to GHC, merging the type and kind language and
allowing reasoning about kind equalities.
* My dissertation is about dependent types in Haskell/GHC.
* I am currently serving as the Template Haskell czar for GHC.
* I am an avid user of lots of GHC extensions, particularly those concerning types. Two of my packages --
singletons and units -- make very heavy use of type system features.

Relevant opinion:
* Despite my pushing the envelope in GHC, my approach toward a language standard is conservative.
Specifically, I would advocate against any of GHC's growing dependent-type features to end up in the
standard: we simply don't have enough experience with these!

My website is at if you wish to learn more about me.

Jurriaan Hage | 7 Oct 21:22 2015

Self nomination

Dear all,

I’d like to nominate myself for the Haskell Prime committee.

I have been programming in Haskell since 2000 or so. Currently I teach a 
course on Functional Programming that discusses many of the essentials 
of Haskell to groups of over 240 or up. 

To be fair:  I do not use Haskell a whole lot myself, but that is also because
my work does not demand much in terms of any kind of programming, and much of
other things. Master and PhD students that I supervise do typically implement their 
ideas in Haskell.

Research-wise I have been working on Haskell too: with Bastiaan Heeren
I have looked at type error diagnosis for Haskell, have contributed to
the Helium compiler for novice programmers, and are currently lead maintainer
of that compiler (available on Hackage). I am also involved in the Utrecht Haskell
Compiler (UHC) with Atze Dijkstra, co-supervising master students working on it. 

I currently supervise a PhD student, Alejandro Serrano Mena, who continues
the work I did with Bastiaan: domain specific type error diagnosis for Haskell 2010,
with an eye to implementing this in UHC or GHC. 

My research interest lies in making Haskell the best vehicle for
embedded domain-specific languages in the world. Incidently, I gave a talk on this
at Curry On! in Prague ( 
Shortly, I want to extend my focus to optimisation, in a way that is transparent to 
the programmer. My paper on heap recycling at PEPM 2008 with Stefan Holdermans 
provides a sample of this.

(Continue reading)

Johan Tibell | 6 Oct 10:12 2015

Re: MRP, 3-year-support-window, and the non-requirement of CPP (was: [Haskell-cafe] Monad of no `return` Proposal (MRP): Moving `return` out of `Monad`)

(Resending with smaller recipient list to avoid getting stuck in the moderator queue.)

On Tue, Oct 6, 2015 at 9:10 AM, Herbert Valerio Riedel <hvr-mXXj517/> wrote:
On 2015-10-05 at 21:01:16 +0200, Johan Tibell wrote:
> On the libraries I maintain and have a copy of on my computer right now: 329

Although this was already pointed out to you in a response to a Tweet of
yours, I'd like to expand on this here to clarify:

You say that you stick to the 3-major-ghc-release support-window
convention for your libraries. This is good, because then you don't need
any CPP at all! Here's why:


So what do I have to write today to have my Monad instances be:

 * Warning free - Warnings are useful. Turning them off or having spurious warnings both contribute to bugs.
 * Use imports that either are qualified or have explicit import lists - Unqualified imports makes code more likely to break when dependencies add exports.
 * Don't use CPP.

Neither AMP or MRP includes a recipe for this in their proposal. AMP got one post-facto on the Wiki. It turns out that the workaround there didn't work (we tried it in Cabal and it conflicted with one of the above requirements.)

PS: I'm a bit disappointed you seem to dismiss this proposal right away
    categorically without giving us a chance to address your
    concerns. The proposal is not a rigid all-or-nothing thing that
    can't be tweaked and revised.  That's why we're having these
    proposal-discussions in the first place (rather than doing blind
    +1/-1 polls), so we can hear everyone out and try to maximise the
    agreement (even if we will never reach 100% consensus on any

    So please, keep on discussing!

The problem by discussions is that they are done between two groups with quite a difference in experience. On one hand you have people like Bryan, who have considerable contributions to the Haskell ecosystem and much experience in large scale software development (e.g. from Facebook). On the other hand you have people who don't. That's okay. We've all been at the latter group at some point of our career.

What's frustrating is that people don't take a step bad and realize that they might be in the latter group and should perhaps listen to those in the former. This doesn't happen, instead we get lots of "C++ and Java so bad and we don't want to be like them." Haskell is not at risk of becoming C++ or Java (which are a large improvement compared to the languages came before them). We're at risk of missing our window of opportunity. I think that would be a shame, as I think Haskell is a step forward compared to those languages and I would like to see more software that used be written in Haskell.

We've been through this many times before on the libraries list. I'm not going to win an argument on this mailing list. Between maintaining libraries you all use and managing a largish team at Google, I don't have much time for a discussion which approaches a hundred emails and is won by virtue of having lots of time to write emails.

-- Johan

Haskell-prime mailing list
Lennart Augustsson | 5 Oct 18:31 2015


I would like to nominate myself to the Haskell Prime committee.

About me:

* I wrote the first publicly available Haskell compiler, hbc, which was available August 1990.
* Subsequently I've written three more Haskell(-ish) compilers.
* I've been on the Haskell Committee before.
* I like experimentation with language features, but I'm very conservative about using them in production code.

-- Lennart Augustsson
Haskell-prime mailing list


Hello everyone,

I would also like to nominate myself for the Haskell committee reboot.

I'm currently finishing my PhD at the University of York, just submitted last week and going to defend in the next few months. I will be starting at Galois later this month but cannot claim to speak for the company.

A small group of us at York have considered writing a (new) York Haskell Compiler. One of the issues faced when considering such a project is that many people expect more than what Haskell98 or Haskell2010 offer, but many of those things are underspecified. The fallback of 'just do what GHC does' defeats the purpose in our eyes. Having a modern standard would help pin down the common extensions to Haskell2010 that people rely on while leaving room for experimentation on the 'how'. 

While most of my work has been on the implementation side of things, I am comfortable with the theoretical aspect of language design. Having just finished my thesis, I'm keen to start on another problem. Having a new, up-to-date, standard is something I feel is important to the wider Haskell community and I would love the opportunity to be involved.

Best wishes,

José Manuel

Haskell-prime mailing list
Andres Löh | 1 Oct 14:36 2015



I'd like to nominate myself for membership in the new Haskell Prime committee.

About me:

* I've been a Haskell user since 1997.
* Back then, to learn Haskell, I read the entire Haskell 1.4 language report.
* I have experience in programming languages theory and language
design, with most of my research focusing on datatype-generic
programming in Haskell (e.g. the stuff that is currently available as
DeriveGeneric etc in GHC).
* I have extensive experience in teaching Haskell, both in an academic
and a commercial context.
* I was a member of the Haskell 2010 committee.

I'd like to contribute to the new standardization effort, and am very
grateful to hvr for taking the lead. I believe that the current system
of accumulating more and more language extensions is only sustainable
in the long term if we shift the baseline from time to time. Even more
than just making a decision on what a new "Haskell" could and should
look like, I think that a likely benefit of the standardization
process will be that we improve the documentation of extensions,
reveal dark corners of underspecficiation and strange interactions,
and perhaps can help to clean up certain things here and there.

Mario Blažević | 25 Sep 17:19 2015

A reluctant self-nomination

	I'm hereby self-nominating for the Haskell' commitee. The main reason 
I'm applying is because I'm afraid that the commitee might disband like 
the previous one. If there are enough members already, feel free to 
ignore my nomination.

That being said, here are my qualifications:

	I started programming in Haskell around the turn of the century. I 
first published on Hackage in 2008 [1]. I have published 9 packages so 
far [2], 2 of which are deprecated, and I made small contributions to 
several other Haskell projects over the years. My projects generally use 
the minimal set of GHC's extensions that's necessary for the job.

	While I occasionally comment on Reddit and the mailing lists, I don't 
publicise much [3][4]. Last year I've managed to get Haskell into 
production at work.

	Outside Haskell, my job involves plenty of language maintenance and DSL 
design, though I wouldn't consider any of it close to the Haskell level 
of sophistication. In particular, I'm sorely lacking the expertise in 
type theory. On the other hand, I have plenty of experience in DSL 
support and language evolution. I can provide more details if necessary.

wren romano | 24 Sep 03:29 2015



I'd like to nominate myself for the new Haskell Prime committee.


I've been active on the libraries list for something like a decade. A
couple years ago I wrote my "burning bridges" email[1], observing that
we've long known certain problems with official/standard Haskell, and
equally long known the solutions, but had been unwilling to actually
push through the communally agreed upon solutions. That email in turn
spawned the AMP[2] and the FTP[3]. The AMP has been widely praised as
an improvement. The FTP has been more controversial (since it was less
thoroughly thought through), but is still I think widely viewed in a
positive light. One thing I'd like to see/work on is fully integrating
these proposals into the standard, so that we can knock off the rough
edges (esp. re the FTP, as we've discovered numerous oversights in how
that's been implemented so far) and make things easier and more
polished for the other Haskell compilers like JHC and UHC to work

Outside of Haskell per se, my work focuses on formalizing language
semantics. Some examples include my master's work on typed unification
in the weighted-logic programming language Dyna[4], my thesis work on
chiastic lambda-calculi[5] including mechanized proofs in Coq, and my
current work on the probabilistic programming language Hakaru[6]. I
also helped Lindsey and Ryan work out the semantic underpinnings of
LVars[7], though this isn't documented anywhere.

[1] <>
[2] <>
[3] <>
[4] I just found out Wes made a github repo
<> for Dyna2 (the reimplementation of Dyna1
we worked on together), though I haven't checked to see whether my
typed unification stuff is in there yet.
[5] <>
[6] <>
[7] <>


Live well,
David Luposchainsky | 23 Sep 18:23 2015

David/quchen nomination

Hello *,

I'd like to throw my hat in for the committee. Some of you might know me from the
proposal texts of the AMP and now the MFP; I've been an active Haskell and
#haskell user for a couple of years now (although mostly for private projects
library-wise), and during that time I think I've stumbled upon enough design
decision explanations, nifty semantical questions, and interesting problems to be
ready for the Haskell Prime process. I'm now used to my new job so I have a
pretty good idea about how much spare time I have; and since it's going to start
snowing in the Alps soon, I think my bike is going to be a clear #2 to Haskell in
terms of things I like to do.

Herbert Valerio Riedel | 23 Sep 12:58 2015

Call for Nominations: Haskell Prime language committee

Dear Haskell Community,

The Haskell Prime[1] standardization process has been dormant since
the last version of the Haskell Report ("Haskell 2010"[2]) was
published, and the original stated plan of publishing yearly revisions
didn't pan out.

To make an unfortunate situation even worse, with the recent
implementation of the Functor/Applicative/Monad Proposal (AMP)[3], the
standard libraries of the principal Haskell implementation have
diverged to the point of GHC 7.10 giving up to be a Haskell 2010
conforming implementation. This leads to the desire to (at the very
least) update the Haskell Report to reflect current reality, and allow
GHC to claim compliance against a newer Haskell Report at some point.

Since the last Haskell Prime committee was formed, the Core libraries
Committee (CLC)[4] came into existence. One of its principal
functions has been to review and comment on library proposals
affecting GHC's `base` library, assess the long-term effect on the
ecosystem and future Haskell Reports, and finally oversee the
implementation. In other words, the CLC has been successfully covering
the library part of the Haskell Report in the last couple of years.

Consequently, the missing piece to get the Haskell Prime process going
again is to put together a committee for the core language part of the
Haskell Report. The task of the new language committee is

 * debate and decide (with the help and support of the broader
   Haskell community) which language extensions are ready for
   inclusion, and

 * put in the work to formalize those extensions into proper
   specifications suitable for the Haskell Report document.

In consultation with the current members of the Haskell Prime
committee (and Simon PJ), I have volunteered as chair to "reboot" the
process and get things rolling again.

The first step is a new round of self-nominations to the committee to
bring in new contributors and fresh enthusiasm. To nominate yourself

 * join the `haskell-prime` list[5], and

 * send a short email to me[6] or, if you prefer, to the
   `haskell-prime` list[5] indicating your desire to self-nominate and
   any relevant experience.

Decisions on these nominations will then be made by discussion among
the current members of the committee.

Nominations close in 3 weeks time.

  Herbert Valerio Riedel

 [6]: mailto:hvriedel+prime@...


PGP fingerprint: 427C B69A AC9D 00F2 A43C  AF1C BA3C BA3F FE22 B574
Haskell-prime mailing list
Doug McIlroy | 2 Mar 00:22 2015

definition of List.transpose

Not having participated in haskell' before, I'm not sure how
to put these perfecting amendments--mot langauge changes--into
the pot.

Doug McIlroy

The specification of List.transpose does not tell what a "column"
of a ragged-right list of rows is, either directly or by example.
Here is a fuller spec, plus some properties.


A generalization of the customary matrix operation, transpose returns
a list of columns extracted from a list of rows.  The jth column
of x::[[a]] comprises all extant elements x!!i!!j ordered by i.

In the subdomain of list structures that have positive nonincreasing
row lengths, e.g. matrices and Young tableaux,
	transpose . transpose === id
	(transpose x) !! i !! j === x !! j !! i
In general
	transpose . transpose . transpose === transpose
	sum . map length . transpose === sum . map length

Example: transpose [[10,11],[20],[],[30,31,32]] === [[10,20,30],[11,31],[32]]


The reference definition can be simplified:

transpose xss = case [h | (h:_) <- xss] of
	[] -> []
	hs -> hs : transpose [tss | (_:tss) <- xss]