News aggregator

[announce] pipes-cliff - library for streaming to and from processes with Pipes

haskell-cafe - Sun, 03/29/2015 - 11:09pm
Sometimes you have to write Haskell code to interact with external processes. What a bother. The System.Process module makes it easy to send data in and out, but what if you want to stream your data in constant time and space? Then you need to cobble together your own solution using the provided Handles. Or you can use pipes-cliff, which lets you use the excellent Pipes library to stream your data in and out. Some simple examples in the package get you started. Also, take a look at the file, which lists some similar packages. Maybe one of those will work better for you. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe< at >
Categories: Offsite Discussion

FP Complete: Announcing: open sourcing of ide-backend

Planet Haskell - Sun, 03/29/2015 - 10:00pm

After many years of development, FP Complete is very happy and proud to announce the open sourcing of ide-backend. ide-backend has served as the basis for our development of School of Haskell and FP Haskell Center, by providing a high level, easy to use, and robust wrapper around the GHC API. We'd like to express our thanks to Duncan Coutts, Edsko de Vries, and Mikolaj Konarski for implementing this library on our behalf.

ide-backend provides a means to do a variety of tasks involving GHC, such as:

  • Compile code
  • Get compile error message
  • Submit updated code for recompilation
  • Extract type information
  • Find usage locations
  • Run generated bytecode
  • Produce optimized executables

For much more information, you can see the Haddock documentation.

Members of the Commercial Haskell Special Interest Group have encouraged us to open source more of our work, to help them build more tools useful to real-world developers. We're happy to contribute.

ide-backend opens the possibility for many new and interesting tools. To give some ideas:

  • A basis for providing a fast development web server while working on a code base. The idea here is a generalized yesod devel, which compiles and runs your web application on each change.
  • Edward Kmett has a project idea of using ide-backend to extract and organize type information from a large number of packages
  • Editor plugins can be improved, simplified, and begin to share much more code than they do today
  • Lightweight tools for inspecting code
  • Refactoring tools

I've shared information about this repository with some maintainers of existing tools in the Haskell world already, and hopefully now with the complete move to open source, we can start a much broader discussion going.

But today's release isn't just a code release; we also have demos! Edsko and Chris have been collaborating on some next-generation editor plugins, and have put together ide-backend-client with support for both Emacs and Atom. Chris has put together a screencast of his Emacs integration:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="" width="420"></iframe>

We also have an early prototype tool at FP Complete for inspecting a code base and getting type information, based on ide-backend, GHCJS, and React.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="" width="420"></iframe>Where we go from here

Open sourcing this library is just the first step.

  • Duncan is planning on writing a blog post describing the architecture employed by this library.
  • Edsko's ide-backend-client project is a great place to continue making contributions and playing with new ideas.
  • FP Complete intends to release more of our ide-backend based tooling in the future as it matures.
  • I've asked for a GSoC proposal on a better development web server, and I'm sure other proposals would be great as well
  • FP Complete and Well Typed are both currently maintaining this library, and we are happy to have new people join the team

I'm excited to hear everyone's thoughts on this library, and look forward to seeing some awesome tools appear.

Categories: Offsite Blogs - Sun, 03/29/2015 - 8:32pm
Categories: Offsite Blogs - Sun, 03/29/2015 - 8:32pm
Categories: Offsite Blogs

Blow your mind - HaskellWiki - Sun, 03/29/2015 - 1:47pm
Categories: Offsite Blogs

Proposal: Make Semigroup as a superclass of Monoid

libraries list - Sun, 03/29/2015 - 1:20pm
The proposal to make Semigroup a superclass of Monoid was discussed a while ago [1], and the conclusion was to "put this off until the dust has settled from the AMP and FT changes". Now that 7.10 is out, I would like to re-propose. The proposed plan is similar to AMP, but less invasive, as (in my subjective experience) user-defined Monoids are much less common than user-defined Monads. 1. GHC 7.12 will include Semigroup and NonEmpty in base. All Monoid instances, and anything else which forms a Semigroup, will have a Semigroup instance. GHC will issue a warning when it encounters an instance of Monoid which is not an instance of Semigroup. 2. GHC >7.12 will define Monoid as a subclass of Semigroup. Stage 2 could be delayed - or in the extreme case, cancelled - if the warnings following stage 1 indicate that the proposal would cause significant breakage of existing code, although this is not anticipated. The rationale for this change is: 1. Semigroup is a popular package (this is relevant in combination
Categories: Offsite Discussion

LTS Haskell 2.0: Last call

haskell-cafe - Sun, 03/29/2015 - 10:33am
This is the last announcement about the upcoming LTS 2 release, which is schedule for this Wednesday, April 1 (no joke). For those unfamiliar with the process: we will essentially be taking that day's Stackage Nightly and promoting it to LTS 2, and locking down the major versions of all packages in that package set until LTS 3. If you'd like to get any additional packages in, please send your pull requests now[1]. I'd also like to call attention to the current upper bounds issues[2]. If we can get any of these issues resolved before Wednesday, then newer versions of the relevant packages can make it into LTS 2. Otherwise, LTS 2 will continue with the old versions. (Alternatively, we can consider dropping the packages with restrictive upper bounds, if there's demand to do so.) Things worth pointing out: * primitive 0.6 is out, and introduces very minimal breaking changes. If you can get your packages to support the new version (likely with just a cabal file change), that would be great. * criterion 1.1 is
Categories: Offsite Discussion

This quote from Learn You A Haskell made me LOL

Haskell on Reddit - Sun, 03/29/2015 - 7:35am

"If a function can't change anything in the world, how is it supposed to tell us what it calculated? In order to tell us what it calculated, it has to change the state of an output device (usually the state of the screen), which then emits photons that travel to our brain and change the state of our mind, man."

submitted by hoogamaphone
[link] [5 comments]
Categories: Incoming News

The Next Stage of Staging

Lambda the Ultimate - Sun, 03/29/2015 - 7:34am

The Next Stage of Staging, by Jun Inoue, Oleg Kiselyov, Yukiyoshi Kameyama:

This position paper argues for type-level metaprogramming, wherein types and type declarations are generated in addition to program terms. Term-level metaprogramming, which allows manipulating expressions only, has been extensively studied in the form of staging, which ensures static type safety with a clean semantics with hygiene (lexical scoping). However, the corresponding development is absent for type manipulation. We propose extensions to staging to cover ML-style module generation and show the possibilities they open up for type specialization and overhead-free parametrization of data types equipped with operations. We outline the challenges our proposed extensions pose for semantics and type safety, hence offering a starting point for a long-term program in the next stage of staging research. The key observation is that type declarations do not obey scoping rules as variables do, and that in metaprogramming, types are naturally prone to escaping the lexical environment in which they were declared. This sets next-stage staging apart from dependent types, whose benefits and implementation mechanisms overlap with our proposal, but which does not deal with type-declaration generation. Furthermore, it leads to an interesting connection between staging and the logic of definitions, adding to the study’s theoretical significance.

A position paper describing the next logical progression of staging to metaprogramming over types. Now with the true first-class modules of 1ML, perhaps there's a clearer way forward.

Categories: Offsite Discussion

Frege Goodness - Sun, 03/29/2015 - 6:29am
Categories: Offsite Blogs

Functional Jobs: Full-stack Software Engineer (updated) at Capital Match (Full-time)

Planet Haskell - Sun, 03/29/2015 - 5:42am


Capital Match ( is a Singapore-based peer-to-peer lending platform. We are backed by a number of VCs and banking industry leaders. We have started our operations at the beginning of 2015 and are steadily growing. Our online platform is already operational and we are now embarking on the next stage of tech development to be able to service large institutional investors. Our product enables SMEs to secure loans from professional investors. We are hiring a well-rounded full-stack software developer to join the team in Singapore.


We are looking for a software engineer interested in all aspects of the creation, growth and operations of a secure web-based platform: Front-end design and implementation, front-to-back features development, distributed deployment and automation in the cloud, build and test automation etc.


Our platform is primarily developed in Haskell with an Om/ClojureScript frontend. Obviously mastering both environments, while not essential, would be a plus. A candidate with a good command of Functional Programming paradigm and Scala/OCaml/F#/Clojure/Lisp/Erlang/Javascript experience is also welcome to apply. For the platform side of things, we want to keep things as simple as possible and learning to use both languages is relatively easy.

Experience in web-based software development is essential and minimum exposure to and understanding of XP practices (TDD, CI, Emergent Design, Refactoring, Peer review and programming, Continuous improvement) is expected. These are standard practices within the team. We therefore favour candidates who value simplicity and respect, accept and give feedback and who are generally team player.

Our team is distributed so ability to work comfortably in a distributed setting is essential. However, please note this position is to be filled in Singapore so if you are not currently living there, relocation is necessary in the short-term.


We offer a combination of salary and equity depending on experience and skills:

Salary: USD 3,000-6,000 / month

Equity: 0.1-1% (subject to vesting)

European citizens who relocate to Singapore do not have to pay their home country taxes and the local tax rate in Singapore is around 2-3% (effective on the proposed salary range). Visa sponsorship will be provided.

Singapore is a great place to live, a vibrant city rich with diverse cultures, a very strong financial sector and a central position in Southeast Asia.

Get information on how to apply for this position.

Categories: Offsite Blogs