diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+1.1.1
+-----
+* remove unnecessary `Real` constraint from comparison operators.
+
 1.1.0
 -----
 * remove unnecessary Num constraint from bunch of constructors and operations:
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,4 +3,8 @@
 
 [![Build Status](https://secure.travis-ci.org/msakai/data-interval.png?branch=master)](http://travis-ci.org/msakai/data-interval)
 
-Interval datatype and interval arithmetic for Haskell
+Interval datatype and interval arithmetic for Haskell.
+
+Unlike the [intervals package](<http://hackage.haskell.org/package/intervals>),
+this package provides both open and closed intervals and is intended to be used
+with Rational.
diff --git a/data-interval.cabal b/data-interval.cabal
--- a/data-interval.cabal
+++ b/data-interval.cabal
@@ -1,5 +1,5 @@
 Name:		data-interval
-Version:	1.1.0
+Version:	1.1.1
 License:	BSD3
 License-File:	COPYING
 Author:		Masahiro Sakai (masahiro.sakai@gmail.com)
@@ -8,6 +8,7 @@
 Cabal-Version:	>= 1.10
 Synopsis:	Interval arithmetic for both open and closed intervals
 Description:
+   Interval datatype and interval arithmetic for Haskell.
    Unlike the intervals package (<http://hackage.haskell.org/package/intervals>),
    this package provides both open and closed intervals and is intended to be used
    with Rational.
diff --git a/src/Data/Interval.hs b/src/Data/Interval.hs
--- a/src/Data/Interval.hs
+++ b/src/Data/Interval.hs
@@ -379,7 +379,7 @@
         condUB = if in2 then Finite x' <= x2 else Finite x' < x2
 
 -- | For all @x@ in @X@, @y@ in @Y@. @x '<' y@?
-(<!) :: Real r => Interval r -> Interval r -> Bool
+(<!) :: Ord r => Interval r -> Interval r -> Bool
 a <! b =
   case ub_a `compare` lb_b of
     LT -> True
@@ -394,29 +394,29 @@
     (lb_b, in2) = lowerBound' b
 
 -- | For all @x@ in @X@, @y@ in @Y@. @x '<=' y@?
-(<=!) :: Real r => Interval r -> Interval r -> Bool
+(<=!) :: Ord r => Interval r -> Interval r -> Bool
 a <=! b = upperBound a <= lowerBound b
 
 -- | For all @x@ in @X@, @y@ in @Y@. @x '==' y@?
-(==!) :: Real r => Interval r -> Interval r -> Bool
+(==!) :: Ord r => Interval r -> Interval r -> Bool
 a ==! b = a <=! b && a >=! b
 
 -- | For all @x@ in @X@, @y@ in @Y@. @x '/=' y@?
 --
 -- Since 1.0.1
-(/=!) :: Real r => Interval r -> Interval r -> Bool
+(/=!) :: Ord r => Interval r -> Interval r -> Bool
 a /=! b = null $ a `intersection` b
 
 -- | For all @x@ in @X@, @y@ in @Y@. @x '>=' y@?
-(>=!) :: Real r => Interval r -> Interval r -> Bool
+(>=!) :: Ord r => Interval r -> Interval r -> Bool
 (>=!) = flip (<=!)
 
 -- | For all @x@ in @X@, @y@ in @Y@. @x '>' y@?
-(>!) :: Real r => Interval r -> Interval r -> Bool
+(>!) :: Ord r => Interval r -> Interval r -> Bool
 (>!) = flip (<!)
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '<' y@?
-(<?) :: Real r => Interval r -> Interval r -> Bool
+(<?) :: Ord r => Interval r -> Interval r -> Bool
 a <? b = lb_a < ub_b
   where
     lb_a = lowerBound a
@@ -442,8 +442,8 @@
       return (x,y)
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '<=' y@?
-(<=?) :: Real r => Interval r -> Interval r -> Bool
-a <=? b　=
+(<=?) :: Ord r => Interval r -> Interval r -> Bool
+a <=? b =
   case lb_a `compare` ub_b of
     LT -> True
     GT -> False
@@ -460,7 +460,7 @@
 -- 
 -- Since 1.0.0
 (<=??) :: (Real r, Fractional r) => Interval r -> Interval r -> Maybe (r,r)
-a <=?? b　= do
+a <=?? b = do
   case pickup (intersection a b) of
     Just x -> return (x,x)
     Nothing -> do
@@ -472,7 +472,7 @@
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '==' y@?
 -- 
 -- Since 1.0.0
-(==?) :: Real r => Interval r -> Interval r -> Bool
+(==?) :: Ord r => Interval r -> Interval r -> Bool
 a ==? b = not $ null $ intersection a b
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '==' y@?
@@ -486,7 +486,7 @@
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '/=' y@?
 --
 -- Since 1.0.1
-(/=?) :: Real r => Interval r -> Interval r -> Bool
+(/=?) :: Ord r => Interval r -> Interval r -> Bool
 a /=? b = not (null a) && not (null b) && not (a == b && isSingleton a)
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '/=' y@?
@@ -507,11 +507,11 @@
       return (x,y)
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '>=' y@?
-(>=?) :: Real r => Interval r -> Interval r -> Bool
+(>=?) :: Ord r => Interval r -> Interval r -> Bool
 (>=?) = flip (<=?)
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '>' y@?
-(>?) :: Real r => Interval r -> Interval r -> Bool
+(>?) :: Ord r => Interval r -> Interval r -> Bool
 (>?) = flip (<?)
 
 -- | Does there exist an @x@ in @X@, @y@ in @Y@ such that @x '>=' y@?
