Updates for November 3, 2016

November 03 2016

The following changes have been made since September:

Updates for September 14, 2016

September 14 2016

The biggest update to the site is the addition of three new targeted "next steps" tutorials on the get started page for using Stack, aimed at Play (using the REPL), Script (single-file programs), and Build (full projects). Hopefully this will help people with different goals all get started with Haskell quickly.

In addition, we have included a few new tutorials:

Plus a few other minor edits throughout the site.

The complete diff can be found here.

Intero for Emacs: Changes June–July

August 01 2016

Intero was made public in the start of June. Here's a rundown of the changes made since then:

  • Now when the backend fails to start, it stops retrying when you're working until you kill the buffer.
  • When the backend is starting and it fails due to missing dependencies, it automatically re-runs without passing --no-build to stack; leading to build all the dependencies and then starting. This leads to a nice workflow of adding a package to the .cabal file and hitting M-x intero-restart.
  • Auto-completion of imports and pragmas.
  • Company-mode integration is asynchronous now, so it doesn't lock up the editor.
  • Removed hlint from next-checkers as it was bothering people. It's easy to re-enable with standard flycheck settings.
  • Now you can switch targets (e.g. M-x intero-targets) using the multi-switch view, like this. Saves you having to remember your targets and the syntax for specifying them.
  • You can now launch the REPL with C-u prefix so that it pops up an options list on how to start the REPL.
  • Fixed a bug in the warnings parser.
  • Added intero-toggle-debug (#79, #151), good for debugging issues with Intero.
  • Finally made a reliable way to save the current buffer for flycheck. This no longer interacts badly with magit or external changes to your files.
  • Added C-c C-z to switch to and from the REPL.
  • Added a suggestions system. When you hit C-c C-r, you get a list of suggestions that you can check and then apply with C-c C-c:

    • Automatically add extensions when GHC suggests them. Example:

       Can't make a derived instance of ‘Functor X’:
       You need DeriveFunctor to derive an instance for this class
       Try GeneralizedNewtypeDeriving for GHC's newtype-deriving extension
       In the newtype declaration for ‘X’
    • Automatically remove redundant imports. Example:

       The import of ‘Control.Monad’ is redundant
         except perhaps to import instances from ‘Control.Monad’
       To import instances alone, use: import Control.Monad()... (intero)
    • Fix typos. Example:

       Not in scope: ‘putStrn’
       Perhaps you meant one of these:
         ‘putStr’ (imported from Prelude),
         ‘putStrLn’ (imported from Prelude)
    • Adding top-level type signatures. Example:

       Top-level binding with no type signature: main :: IO ()
    • Removing redundant class constraints. Example:

       Redundant constraints: (Arith var, Bitwise var)
    • And turning off warnings for name shadowing and type defaulting. (Checkbox is not checked by default.)
  • And other miscellaneous bug fixes.

Updates for July

July 27 2016

Since July we've made a number of updates, mostly content. Here's a rundown:

  • Intero was added to the site under /intero.
  • We've added Intero to the get-started page.
  • We've added the /tutorial/ hierarchy, with a sample tutorial.
  • The /packages page has been renamed to /libraries. The idea being this might be more obvious to newcomers from other languages.
  • Added a library description for conduit.

The complete diff can be found here.

New haskell-lang.org

July 06 2016

By the haskell-lang.org team: Chris Done, Chris Allen, Julie Moronuki, Michael Snoyman, Sibi Prabakaran, Gabriel Gonzalez

We are happy to announce the launch of a new Haskell community nexus site: http://haskell-lang.org/. This website is aimed at providing modern best practices information for the Haskell programming language, and in particular with providing the best possible new user experience. The aim is to lower the barrier to getting started with Haskell, and ultimately increase adoption of Haskell in the greater programming community.

The launch of this website is paired with the launch of a number of additional community resources to aid its growth:

These community resources are open to all to discuss the contents of the website, and more broadly how to make Haskell as welcoming a language, community, and ecosystem as can be managed. We encourage all Haskellers to join, and to take part in lively discussions of how to improve the state of the art within Haskell.

As this community is just forming, now is the perfect time to get involved. Post questions and comments on Reddit, Tweet to us, send pull requests for the website, and open issues. This community will become what you put into it, so help shape it from the beginning!

Why a new site?

Since it is a common question in such statements, let us ask it directly here: why create a new website instead of working to incrementally update haskell.org? In the opinion of the team behind haskell-lang.org, the tooling story and general ecosystem infrastructure for the Haskell community has accumulated enough baggage that a clean break is the best use of everybody's time. We intend to streamline the on-boarding process for new developers, move away from infrastructure that is showing its age, and embrace newer approaches to facilitate open collaboration. Similar decisions have already been made in creating the Stack build tool and Stackage.