diff --git a/README b/README
deleted file mode 100644
--- a/README
+++ /dev/null
@@ -1,28 +0,0 @@
-This repository contains things related to
-
-              Hoopl: A Higher-Order OPtimization Library
-
-** The closest thing we have to a SAMPLE CLIENT is in ./testing **
-
-Directory     Contents
-
-paper/        A paper about Hoopl
-prototypes/   A sampling of prototypes and early designs
-src/          The current official sources to the Cabal package
-testing/      Tests, including a sample client.  See ./testing/README.
-
-To build the library, change to the src directory and run
-
-  cabal configure --prefix=$HOME --user   # we have no idea what this means
-  cabal build
-  cabal install --enable-documentation
-
-You'll need a Haskell Platform, which should include appropriate
-versions of Cabal and GHC.
-
-To upload to Hackage,
-
-  cabal sdist
-  cabal upload dist/something.tar.gz
-
-Developers, please see HOWTO-BRANCHES
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,43 @@
+The `hoopl` Package  [![Hackage](https://img.shields.io/hackage/v/hoopl.svg)](https://hackage.haskell.org/package/hoopl) [![Build Status](https://travis-ci.org/haskell/hoopl.svg)](https://travis-ci.org/haskell/hoopl)
+===================
+
+## Hoopl: A Higher-Order OPtimization Library
+
+API documentation can be found on [Hackage](https://hackage.haskell.org/package/hoopl).
+
+| Directory      | Contents
+| -------------- | ---------
+| `paper/`       | A paper about Hoopl
+| `prototypes/`  | A sampling of prototypes and early designs
+| `src/`         | The current official sources to the Cabal package
+| `testing/`     | Tests, including a sample client.  See [`testing/README`](testing/README)
+
+### Development Notes
+
+To build the library, change to the src directory and run
+
+    cabal configure --prefix=$HOME --user   # we have no idea what this means
+    cabal build
+    cabal install --enable-documentation
+
+You'll need a Haskell Platform, which should include appropriate
+versions of Cabal and GHC.
+
+### Checklist for Making Releases
+
+In order to facilitate GHC development's workflow, the version in [`hoopl.cabal`](hoopl.cabal) is to be bumped as soon as a change requires a respective version bump (according to the PVP) relative to the last released `hoopl` version.
+
+1. Make sure `hoopl` passes Travis for all GHC versions in the build-matrix
+2. Update Changelog (& `git commit`)
+3. Generate source tarball via `cabal sdist` and upload a candidate to Hackage (see note below), and inspect the result. 
+4. If everything checks out, make an annotated and GPG-signed Git release tag: `git tag -a -s v${VER} -m "hoopl ${VER}"`
+5. Publish (there's a button for that on Hackage) the package candidate
+6. Work on next release
+
+Note: To upload to Hackage,
+
+    cabal sdist
+    cabal upload dist/hoopl-*.tar.gz
+
+However, it's recommended use the Hackage feature for
+[uploading a candidate](http://hackage.haskell.org/packages/candidates/upload).
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,11 @@
 # Changelog for [`hoopl` package](http://hackage.haskell.org/package/hoopl)
 
+## 3.10.1.0 *Apr 2015*
+
+ - Re-export runWithFuel from Compiler.Hoopl.
+
+ - Remove redundant constraints
+
 ## 3.10.0.2  *Dec 2014*
 
  - Add support for `base-4.8.0.0` package version
diff --git a/hoopl.cabal b/hoopl.cabal
--- a/hoopl.cabal
+++ b/hoopl.cabal
@@ -1,5 +1,5 @@
 Name:                hoopl
-Version:             3.10.0.2
+Version:             3.10.1.0
 -- NOTE: Don't forget to update ./changelog.md
 Description:
   Higher-order optimization library
@@ -10,7 +10,7 @@
 License:             BSD3
 License-File:        LICENSE
 Author:              Norman Ramsey, Joao Dias, Simon Marlow and Simon Peyton Jones
-Maintainer:          nr@cs.tufts.edu
+Maintainer:          nr@cs.tufts.edu, andreas.voellmy@gmail.com, email@ningwang.org
 Homepage:            http://ghc.cs.tufts.edu/hoopl/
 Bug-Reports:         http://ghc.haskell.org/trac/ghc/newticket?component=libraries/hoopl
 Build-Type:          Simple
@@ -18,7 +18,7 @@
 Synopsis:            A library to support dataflow analysis and optimization
 Category:            Compilers/Interpreters
 Tested-With:         GHC>=7.0.1
-Extra-Source-Files:  README, hoopl.pdf, changelog.md
+Extra-Source-Files:  README.md, hoopl.pdf, changelog.md
 
 Source-repository head
   Type:       git
diff --git a/src/Compiler/Hoopl.hs b/src/Compiler/Hoopl.hs
--- a/src/Compiler/Hoopl.hs
+++ b/src/Compiler/Hoopl.hs
@@ -27,7 +27,7 @@
 import Compiler.Hoopl.Dataflow hiding ( wrapFR, wrapFR2, wrapBR, wrapBR2
                                       )
 import Compiler.Hoopl.Debug
-import Compiler.Hoopl.Fuel hiding (withFuel, getFuel, setFuel, runWithFuel)
+import Compiler.Hoopl.Fuel hiding (withFuel, getFuel, setFuel)
 import Compiler.Hoopl.Block
 import Compiler.Hoopl.Graph hiding (splice, gSplice)
 import Compiler.Hoopl.Label hiding (uniqueToLbl, lblToUnique)
diff --git a/src/Compiler/Hoopl/Dataflow.hs b/src/Compiler/Hoopl/Dataflow.hs
--- a/src/Compiler/Hoopl/Dataflow.hs
+++ b/src/Compiler/Hoopl/Dataflow.hs
@@ -736,7 +736,7 @@
           exitFacts (JustO (DBlock f b)) = mapSingleton (entryLabel b) f
           bodyFacts :: LabelMap (DBlock f n C C) -> FactBase f
           bodyFacts body = mapFoldWithKey f noFacts body
-            where f :: forall t a x. (NonLocal t) => Label -> DBlock a t C x -> LabelMap a -> LabelMap a
+            where f :: forall t a x. Label -> DBlock a t C x -> LabelMap a -> LabelMap a
                   f lbl (DBlock f _) fb = mapInsert lbl f fb
 
 --- implementation of the constructors (boring)
diff --git a/src/Compiler/Hoopl/Fuel.hs b/src/Compiler/Hoopl/Fuel.hs
--- a/src/Compiler/Hoopl/Fuel.hs
+++ b/src/Compiler/Hoopl/Fuel.hs
@@ -21,7 +21,9 @@
 import Compiler.Hoopl.Checkpoint
 import Compiler.Hoopl.Unique
 
+#if !MIN_VERSION_base(4,8,0)
 import Control.Applicative (Applicative(..))
+#endif
 import Control.Monad (ap,liftM)
 
 class Monad m => FuelMonad m where
diff --git a/src/Compiler/Hoopl/Graph.hs b/src/Compiler/Hoopl/Graph.hs
--- a/src/Compiler/Hoopl/Graph.hs
+++ b/src/Compiler/Hoopl/Graph.hs
@@ -46,7 +46,9 @@
 import Compiler.Hoopl.Block
 import Compiler.Hoopl.Label
 
+#if !MIN_VERSION_base(4,8,0)
 import Control.Applicative (Applicative(..))
+#endif
 import Control.Monad (ap,liftM,liftM2)
 
 -- -----------------------------------------------------------------------------
@@ -65,7 +67,7 @@
 bodyUnion = mapUnionWithKey nodups
   where nodups l _ _ = error $ "duplicate blocks with label " ++ show l
 
-bodyList :: NonLocal (block n) => Body' block n -> [(Label,block n C C)]
+bodyList :: Body' block n -> [(Label,block n C C)]
 bodyList body = mapToList body
 
 addBlock :: NonLocal thing
@@ -306,8 +308,7 @@
 -- Better to get [A,B,C,D]
 
 
-graphDfs :: (NonLocal (block n))
-         => (LabelMap (block n C C) -> block n O C -> LabelSet -> [block n C C])
+graphDfs :: (LabelMap (block n C C) -> block n O C -> LabelSet -> [block n C C])
          -> (Graph' block n O x -> [block n C C])
 graphDfs _     (GNil)    = []
 graphDfs _     (GUnit{}) = []
diff --git a/src/Compiler/Hoopl/Show.hs b/src/Compiler/Hoopl/Show.hs
--- a/src/Compiler/Hoopl/Show.hs
+++ b/src/Compiler/Hoopl/Show.hs
@@ -20,9 +20,9 @@
 type Showing n = forall e x . n e x -> String
  
 
-showGraph :: forall n e x . (NonLocal n) => Showing n -> Graph n e x -> String
+showGraph :: forall n e x . Showing n -> Graph n e x -> String
 showGraph node = g
-  where g :: (NonLocal n) => Graph n e x -> String
+  where g :: Graph n e x -> String
         g GNil = ""
         g (GUnit block) = b block
         g (GMany g_entry g_blocks g_exit) =
diff --git a/src/Compiler/Hoopl/Unique.hs b/src/Compiler/Hoopl/Unique.hs
--- a/src/Compiler/Hoopl/Unique.hs
+++ b/src/Compiler/Hoopl/Unique.hs
@@ -24,7 +24,9 @@
 import qualified Data.IntMap as M
 import qualified Data.IntSet as S
 
+#if !MIN_VERSION_base(4,8,0)
 import Control.Applicative
+#endif
 import Control.Monad (ap,liftM)
 
 -----------------------------------------------------------------------------
