diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -7,3 +7,6 @@
     LT
     > compare_chinese_string_by_pinyin "恶魔" "大天使"
     GT
+    > map show_pinyin "世界"
+    [Just "shi4",Just "jie4"]
+    
diff --git a/sort-by-pinyin.cabal b/sort-by-pinyin.cabal
--- a/sort-by-pinyin.cabal
+++ b/sort-by-pinyin.cabal
@@ -1,5 +1,5 @@
 Name:                 sort-by-pinyin
-Version:              2012.6.5
+Version:              2014.5.19
 Build-type:           Simple
 Synopsis:             Sort simplified Chinese by PinYin
 Description:          Sort simplified Chinese by PinYin
@@ -16,12 +16,13 @@
 library
   build-depends:      base >= 3 && < 99
                     , text
-                    , air
+                    , air >= 2014.5.19
+                    , air-th
                     , containers
                     , bytestring
                     , air-extra
-                    
+
   hs-source-dirs: src/
-  exposed-modules:  
+  exposed-modules:
                     Text.SortByPinyin
                     Text.SortByPinyinData
diff --git a/src/Text/SortByPinyin.hs b/src/Text/SortByPinyin.hs
--- a/src/Text/SortByPinyin.hs
+++ b/src/Text/SortByPinyin.hs
@@ -1,4 +1,4 @@
-module Text.SortByPinyin 
+module Text.SortByPinyin
 
 (
   pinyin_char_map
@@ -12,7 +12,6 @@
 
 import Air.Env
 import Prelude ()
-import Air.TH
 import Air.Extra
 
 import qualified Data.Char as Char
@@ -32,22 +31,22 @@
 
 
 pinyin_char_map :: Map.Map Char String
-pinyin_char_map = 
+pinyin_char_map =
   pinyins
     .map (split "\t")
     .map (take 2)
     .reject (length > is_not 2)
     .map (\(x:y:_) -> (x,y))
     .map_fst hex_to_char
-    .concatMap (\(x,y) -> 
-              case x of 
+    .concatMap (\(x,y) ->
+              case x of
                 Nothing -> []
                 Just x' -> [(x',y)]
                 )
     .to_h
 
 hex_to_char :: String -> Maybe Char
-hex_to_char x = 
+hex_to_char x =
   case Text.Read.hexadecimal (Text.pack x) of
     Left _ -> Nothing
     Right (int_value,_) -> Just - Char.chr int_value
@@ -60,7 +59,7 @@
   let x_pinyin = show_pinyin x
       y_pinyin = show_pinyin y
   in
-  
+
   case x_pinyin of
     Nothing -> compare x y
     Just x_pinyin_string ->
@@ -73,9 +72,8 @@
 compare_chinese_string_by_pinyin :: String -> String -> Ordering
 compare_chinese_string_by_pinyin [] ys = LT
 compare_chinese_string_by_pinyin xs [] = GT
-compare_chinese_string_by_pinyin (x:xs) (y:ys) = 
+compare_chinese_string_by_pinyin (x:xs) (y:ys) =
   case compare_chinese_char_by_pinyin x y of
     EQ -> compare_chinese_string_by_pinyin xs ys
     LT -> LT
     GT -> GT
-  
