diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for FirstPrelude
 
+## 0.1.2.0
+* Include standard definition of `ifThenElse` to allow RebindableSyntax
+to be used.
+
 ## 0.1.1.0
 * Added in (^) :: Integer -> Integer -> Integer
 
diff --git a/FirstPrelude.cabal b/FirstPrelude.cabal
--- a/FirstPrelude.cabal
+++ b/FirstPrelude.cabal
@@ -8,7 +8,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:            0.1.1.0
+version:            0.1.2.0
 
 -- A short (one-line) description of the package.
 synopsis:           A version of Prelude suitable for teaching.
diff --git a/src/FirstPrelude.hs b/src/FirstPrelude.hs
--- a/src/FirstPrelude.hs
+++ b/src/FirstPrelude.hs
@@ -26,6 +26,9 @@
 
 module FirstPrelude (
 
+    -- * Infrastructure
+    ifThenElse,
+
     -- * Standard types
 
     -- ** Basic data types
@@ -145,6 +148,13 @@
 
 -- Re-export some monomorphised things from foldable
 import qualified Data.Foldable as Foldable
+
+default (Integer)
+
+-- So that RebindableSyntax can also be used
+ifThenElse :: Bool -> a -> a -> a
+ifThenElse True x _  = x
+ifThenElse False _ y = y
 
 -- Avoids the Int/Integer problem
 length :: [a] -> Integer
