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.

, 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:

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.

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.

Do you like this blog post and need help with DevOps, Rust or functional programming? Contact us.

Share this