diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,15 @@
 Changelog for the `operational` package
 ---------------------------------------
 
+**0.2.3.5** -- Maintenance release.
+
+* Update references to other packages.
+* Modernize `.cabal` file.
+
+**0.2.3.4** -- Maintenance release.
+
+* Restrict dependencies to ensure GHC >= 7.2.
+
 **0.2.3.3** -- Maintenance release.
 
 * Minor fixes to documentation and examples
diff --git a/operational.cabal b/operational.cabal
--- a/operational.cabal
+++ b/operational.cabal
@@ -1,5 +1,5 @@
 Name:               operational
-Version:            0.2.3.4
+Version:            0.2.3.5
 Synopsis:           Implementation of difficult monads made easy
                     with operational semantics.
 Description:
@@ -9,7 +9,13 @@
   .
   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>.
+  Related packages:
+  .
+  * MonadPrompt — <http://hackage.haskell.org/package/MonadPrompt>
+  .
+  * free — <http://hackage.haskell.org/package/free>
+  .
+  * free-operational — <http://hackage.haskell.org/package/free-operational>
 
 Category:           Control, Monads
 License:            BSD3
@@ -21,7 +27,7 @@
 Stability:          Provisional
 
 build-type:         Simple
-cabal-version:      >= 1.6
+cabal-version:      >= 1.10
 extra-source-files: CHANGELOG.md
                     doc/*.md
                     doc/examples/*.hs
@@ -31,27 +37,37 @@
 flag buildExamples
     description: Build example executables.
     default:     True
- 
+    manual:      True
+
 source-repository head
     type:           git
     location:       git://github.com/HeinrichApfelmus/operational.git
 
 Library
+    default-language:   Haskell2010
+    other-extensions:   ExistentialQuantification
+                        FlexibleInstances
+                        GADTSyntax
+                        MultiParamTypeClasses
+                        Rank2Types
+                        ScopedTypeVariables
+                        UndecidableInstances
+
     hs-source-dirs:     src
-    build-depends:      base >= 4.4 && < 5 , mtl >= 1.1 && < 2.3.0
-    ghc-options:        -Wall
-    extensions:         GADTs, Rank2Types, ScopedTypeVariables,
-                        UndecidableInstances, GADTSyntax,
-                        MultiParamTypeClasses, FlexibleInstances
     exposed-modules:    Control.Monad.Operational
 
+    build-depends:      base >= 4.4 && < 5, mtl >= 1.1 && < 2.3.0
+    ghc-options:        -Wall
+
 Executable operational-TicTacToe
-    if flag(buildExamples)
-        build-depends:  random == 1.*
-        cpp-options: -DbuildExamples
-    else
+    if !flag(buildExamples)
         buildable: False
-    main-is:            doc/examples/TicTacToe.hs
-    hs-source-dirs:     src, .
-    other-modules:      Control.Monad.Operational
 
+    default-language:   Haskell2010
+    other-extensions:   GADTs
+                        Rank2Types
+
+    hs-source-dirs:     doc/examples
+    main-is:            TicTacToe.hs
+
+    build-depends:      operational, base, mtl, random == 1.*
