ImperativeHaskell: A library for writing Imperative style haskell.

[ control, development, embedded, gpl, language, library ] [ Propose Tags ]

A monad that uses GADTs and continuations to replicate what it is like to program in an imperative language like C, Java or Go with "return", "for", "break", "continue", and mutable references.

In Version 2:

  • Single return function: return'

  • A Go language style defer' primitive.

  • Proper compiler errors when break' and continue' are used incorrectly

  • Note: Version 2 has a very different internal structure from version 1, and thus there will likely be type signature conflicts.

For more information see:

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,,,,,
Dependencies base (>=4.0 && <5.0), mtl (>=2.0 && <3.0), template-haskell (>=2.6 && <3.0) [details]
License GPL-3.0-only
Author Matthew Mirman
Maintainer Matthew Mirman <>
Category Control, Embedded, Development, Language
Home page
Source repo head: git clone git://
Uploaded by MatthewMirman at 2012-06-07T16:21:36Z
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 9781 total (23 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for ImperativeHaskell-

[back to package description]
Just proof that Haskell' can be truly imperative, and even look like C.

For some background, look in

For an example usage, look in Main.hs.