diff --git a/CHANGELOG b/CHANGELOG
deleted file mode 100644
--- a/CHANGELOG
+++ /dev/null
@@ -1,35 +0,0 @@
-Changelog
----------
-
-operational - 0.2.3.1
-
-* bump dependency `mtl >= 1.1 && < 2.3`.
-
-operational - 0.2.3.0
-
-* added instance for `MonadReader` class
-* clean up documentation
-
-operational - 0.2.2.0
-
-* add utility function `interpretWithMonad`
-
-operational - 0.2.1.0
-
-* minor change: eta-reduce `Program` and `ProgramView` type synonyms
-
-operational - 0.2.0.3
-
-* moved project repository to github
-
-operational - 0.2.0.0
-
-* changed name of view type to `ProgramView`
-* added instances for  mtl  classes
-* new function `liftProgram` to embed `Program` in `ProgramT`
-* new example `TicTacToe.hs`
-* various documentation updates
-
-operational - 0.1.0.0
-
-* initial release
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,43 @@
+Changelog for the `operational` package
+---------------------------------------
+
+**0.2.3.3** -- Maintenance release.
+
+* Minor fixes to documentation and examples
+
+**0.2.3.2** -- Maintenance release.
+
+* Bump `mtl` dependency to allow 2.3
+
+**0.2.3.1** -- Maintenance release.
+
+* Bump `mtl` dependency to allow 2.2
+
+**0.2.3.0** -- Maintenance release.
+
+* added instance for `MonadReader` class
+* clean up documentation
+
+**0.2.2.0** -- Feature release.
+
+* add utility function `interpretWithMonad`
+
+**0.2.1.0** -- Maintenance release.
+
+* minor change: eta-reduce `Program` and `ProgramView` type synonyms
+
+**0.2.0.3** -- Maintenance release.
+
+* moved project repository to github
+
+**0.2.0.0** -- Feature release.
+
+* changed name of view type to `ProgramView`
+* added instances for  mtl  classes
+* new function `liftProgram` to embed `Program` in `ProgramT`
+* new example `TicTacToe.hs`
+* various documentation updates
+
+**0.1.0.0**
+
+* initial release
diff --git a/doc/examples/ListT.hs b/doc/examples/ListT.hs
--- a/doc/examples/ListT.hs
+++ b/doc/examples/ListT.hs
@@ -47,7 +47,7 @@
 
 
     -- testing the monad laws, from the Haskellwiki
-    -- http://www.haskell.org/haskellwiki/ListT_done_right#Order_of_printing
+    -- http://wiki.haskell.org/ListT_done_right#Order_of_printing
 a,b,c :: ListT IO ()
 [a,b,c] = map (lift . putChar) ['a','b','c']
 
diff --git a/doc/examples/LogicT.hs b/doc/examples/LogicT.hs
--- a/doc/examples/LogicT.hs
+++ b/doc/examples/LogicT.hs
@@ -47,6 +47,7 @@
     where
     -- apply the laws for  msplit
     eval :: Monad m => ProgramViewT (MPlus m) m a -> m (Maybe (a, LogicT m a))
+    eval (Return v)         = return (Just (v, mzero))
     eval (MZero     :>>= k) = return Nothing
     eval (MPlus m n :>>= k) = do
         ma <- split (m >>= k)
diff --git a/doc/examples/PoorMansConcurrency.hs b/doc/examples/PoorMansConcurrency.hs
--- a/doc/examples/PoorMansConcurrency.hs
+++ b/doc/examples/PoorMansConcurrency.hs
@@ -42,6 +42,7 @@
 runProcess m = schedule [m]
     where
     schedule :: Monad m => [Process m a] -> m ()
+    schedule []     = return ()
     schedule (x:xs) = run (view x) xs
 
     run :: Monad m => ProgramView (ProcessI m) a -> [Process m a] -> m ()
diff --git a/doc/proofs.md b/doc/proofs.md
--- a/doc/proofs.md
+++ b/doc/proofs.md
@@ -45,7 +45,7 @@
     instance Monad (NF instr) where
         return            = Return'
         (Return' a) >>= k = k a
-        (m :>>=' g) >>= k = m :>>=' (\a -> g a :>>=' k)
+        (m :>>=' g) >>= k = m :>>=' (\a -> g a >>= k)
 
 In particular, it fulfills the monad laws. (Actually we would have to prove that by using coinduction, but I leave that as an exercise.)
 
diff --git a/operational.cabal b/operational.cabal
--- a/operational.cabal
+++ b/operational.cabal
@@ -1,5 +1,5 @@
 Name:               operational
-Version:            0.2.3.2
+Version:            0.2.3.3
 Synopsis:           Implementation of difficult monads made easy
                     with operational semantics.
 Description:
@@ -7,7 +7,7 @@
   .
   This is useful for: writing web applications in a sequential style, programming games with a uniform interface for human and AI players and easy replay capababilities, implementing fast parser monads, designing monadic DSLs, etc.
   .
-  See the project homepage <http://haskell.org/haskellwiki/Operational> for a more detailed introduction and features.
+  See the project homepage <http://wiki.haskell.org/Operational> for a more detailed introduction and features.
   .
   Related packages: MonadPrompt <http://hackage.haskell.org/package/MonadPrompt>.
 
@@ -17,12 +17,12 @@
 Author:             Heinrich Apfelmus
 Maintainer:         Heinrich Apfelmus <apfelmus quantentunnel de>
 Copyright:          (c) Heinrich Apfelmus 2010-2013
-Homepage:           http://haskell.org/haskellwiki/Operational
+Homepage:           http://wiki.haskell.org/Operational
 Stability:          Provisional
 
 build-type:         Simple
 cabal-version:      >= 1.6
-extra-source-files: CHANGELOG
+extra-source-files: CHANGELOG.md
                     doc/*.md
                     doc/examples/*.hs
                     doc/examples/*.lhs
diff --git a/src/Control/Monad/Operational.hs b/src/Control/Monad/Operational.hs
--- a/src/Control/Monad/Operational.hs
+++ b/src/Control/Monad/Operational.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GADTs, Rank2Types, ScopedTypeVariables #-}
+{-# LANGUAGE GADTSyntax, ExistentialQuantification, Rank2Types, ScopedTypeVariables #-}
 {-# LANGUAGE UndecidableInstances, MultiParamTypeClasses, FlexibleInstances #-}
 -- Search for UndecidableInstances to see why this is needed
 
@@ -175,7 +175,7 @@
 >        eval (Pop    :>>= is) (a:stack) = interpret (is a ) stack
 >        eval (Return a)       stack     = a
 
-Note that since 'ProgramView' is a GADT, the type annotation for @eval@ is mandatory.
+In this example, the type signature for the `eval` helper function is optional.
 
 -}
 
@@ -284,7 +284,7 @@
 >        eval (Plus m n :>>= k) =
 >            liftM2 (++) (runList (m >>= k)) (runList (n >>= k))
 
-Note that since 'ProgramView' is a GADT, the type annotation for @eval@ is mandatory.
+In this example, the type signature for the `eval` helper function is optional.
 
 -}
 
@@ -311,5 +311,5 @@
     
     local r (Lift m)     = Lift (local r m)
     local r (m `Bind` k) = local r m `Bind` (local r . k)
-    local r (Instr i)    = Instr i
+    local _ (Instr i)    = Instr i
 
