diff --git a/EdisonCore.cabal b/EdisonCore.cabal
--- a/EdisonCore.cabal
+++ b/EdisonCore.cabal
@@ -1,7 +1,7 @@
 Name:           EdisonCore
 Cabal-Version:  >= 1.2
 Build-Type:     Simple
-Version:        1.2.1.2
+Version:        1.2.1.3
 License:        OtherLicense
 License-File:   COPYRIGHT
 Author:         Chris Okasaki
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,3 +1,3 @@
 #!/usr/bin/env runhaskell
 import Distribution.Simple
-main = defaultMainWithHooks defaultUserHooks
+main = defaultMain
diff --git a/src/Data/Edison/Assoc/StandardMap.hs b/src/Data/Edison/Assoc/StandardMap.hs
--- a/src/Data/Edison/Assoc/StandardMap.hs
+++ b/src/Data/Edison/Assoc/StandardMap.hs
@@ -198,10 +198,8 @@
 size               = DM.size
 member             = DM.member
 count              = countUsingMember
-lookup k m         = case lookupM k m of
-                         Nothing -> error (moduleName ++ ".lookup: failed")
-                         Just x  -> x
-lookupM            = DM.lookup
+lookup k m         = maybe (error (moduleName ++ ".lookup: failed")) id (DM.lookup k m)
+lookupM k m        = maybe (fail (moduleName ++ ".lookupM: failed")) return (DM.lookup k m)
 lookupAll          = lookupAllUsingLookupM
 lookupWithDefault  = DM.findWithDefault
 lookupAndDelete    = lookupAndDeleteDefault
