diff --git a/Data/Ranges.hs b/Data/Ranges.hs
--- a/Data/Ranges.hs
+++ b/Data/Ranges.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE FlexibleInstances #-}
 module Data.Ranges 
-(range, ranges, Range, Ranges, inRange, inRanges, toSet,single)
+(range, ranges, Range, Ranges, inRange, inRanges, toSet, single, addRange)
 where
 
 import Data.Set (Set)
@@ -8,8 +8,8 @@
 
 data Ord a => Range a = Single !a | Range !a !a
 instance (Ord a, Show a) => Show (Range a) where
-	show (Single x) = "(" ++ show x ++ ")"
-	show (Range x y) = "(" ++ show x ++ "-" ++ show y ++ ")"
+	show (Single x) = concat ["(", show x, ")"]
+	show (Range x y) = concat ["(", show x, "–", show y, ")"]
 
 newtype Ord a => Ranges a = Ranges [Range a] deriving Show
 
@@ -63,6 +63,9 @@
 -- | Allows quick lookups using ranges.
 toSet :: (Ord a) => Ranges a -> Set (Range a)
 toSet (Ranges x) = Set.fromList x
+
+addRange :: (Ord a) => Ranges a -> Range a -> Ranges a
+addRange (Ranges x) = Ranges . mergeRanges x
 
 mergeRanges :: (Ord a) => [Range a] -> Range a -> [Range a]
 mergeRanges [] y = [y]
diff --git a/ranges.cabal b/ranges.cabal
--- a/ranges.cabal
+++ b/ranges.cabal
@@ -1,5 +1,5 @@
 Name: ranges
-Version: 0.2
+Version: 0.2.1
 Description: Ranges and some functions allowing things like fast membership
 	lookup on ranges with holes in them and so on.
 Synopsis: Ranges and various functions on them.
