diff --git a/Boolean.cabal b/Boolean.cabal
--- a/Boolean.cabal
+++ b/Boolean.cabal
@@ -1,13 +1,14 @@
 Name:                Boolean
-Version:             0.1.0
-Cabal-Version:       >= 1.6
+Version:             0.1.1
 Synopsis:            Generalized booleans
 Category:            Data
+Cabal-Version:       >= 1.6
 Description:
   Some classes for generalized boolean operations.
   Starting with 0.1.0, this package uses type families.
   Up to version 0.0.2, it used MPTCs with functional dependencies.
   My thanks to Andy Gill for suggesting & helping with the change.
+  Thanks also to Alex Horsman for the overloading module.
   .
   Copyright 2009-2012 Conal Elliott; BSD3 license.
 Author:              Conal Elliott
@@ -28,7 +29,7 @@
   Build-Depends:       base<5
   Exposed-Modules:
                        Data.Boolean
-                       
+                       Data.Boolean.Overload
   ghc-options:         -Wall
 
 --  ghc-prof-options:    -prof -auto-all 
diff --git a/src/Data/Boolean.hs b/src/Data/Boolean.hs
--- a/src/Data/Boolean.hs
+++ b/src/Data/Boolean.hs
@@ -106,7 +106,7 @@
 maxB :: (IfB a, OrdB a) => a -> a -> a
 u `maxB` v = ifB (u >=* v) u v
 
--- | Variant of 'min' using 'ifB' and '(<=*)'
+-- | Variant of 'min' and 'max' using 'ifB' and '(<=*)'
 sort2B :: (IfB a, OrdB a) => (a,a) -> (a,a)
 sort2B (u,v) = ifB (u <=* v) (u,v) (v,u)
 
diff --git a/src/Data/Boolean/Overload.hs b/src/Data/Boolean/Overload.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Boolean/Overload.hs
@@ -0,0 +1,72 @@
+{-# OPTIONS_GHC -Wall #-}
+
+----------------------------------------------------------------------
+-- |
+-- Module      :  Data.Boolean.Overload
+-- License     :  BSD3
+-- 
+-- Author      :  Alex Horsman (aninhumer)
+-- Maintainer  :  conal@conal.net
+-- Stability   :  experimental
+-- 
+-- 
+-- Definitions of Prelude function names in terms of their corresponding
+-- Data.Boolean generalised implementation. This can then be used as part
+-- of a partial or complete Prelude replacement.
+--
+-- Also exports ifThenElse for use with RebindableSyntax.
+----------------------------------------------------------------------
+
+module Data.Boolean.Overload
+  ( module Data.Boolean,
+    (&&), (||), not,
+    ifThenElse,
+    (==), (/=), 
+    (<), (>), (<=), (>=),
+    min, max
+  ) where
+
+import Data.Boolean
+import Prelude hiding
+  ( (&&), (||), not,
+    (==), (/=), 
+    (<), (>), (<=), (>=),
+    min, max
+  )
+
+(&&) :: Boolean a => a -> a -> a
+(&&) = (&&*)
+
+(||) :: Boolean a => a -> a -> a
+(||) = (||*)
+
+not :: Boolean a => a -> a
+not = notB
+
+
+-- For use with RebindableSyntax
+ifThenElse :: IfB a => BooleanOf a -> a -> a -> a
+ifThenElse = ifB
+
+
+(==) :: EqB a => a -> a -> BooleanOf a
+(==) = (==*)
+(/=) :: EqB a => a -> a -> BooleanOf a
+(/=) = (/=*)
+
+
+(<) :: OrdB a => a -> a -> BooleanOf a
+(<) = (<*)
+(>) :: OrdB a => a -> a -> BooleanOf a
+(>) = (>*)
+(<=) :: OrdB a => a -> a -> BooleanOf a
+(<=) = (<=*)
+(>=) :: OrdB a => a -> a -> BooleanOf a
+(>=) = (>=*)
+
+min :: (IfB a, OrdB a) => a -> a -> a
+min = minB
+max :: (IfB a, OrdB a) => a -> a -> a
+max = maxB
+
+
