diff --git a/Shakefile.hs b/Shakefile.hs
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -32,8 +32,8 @@
   -- | sanity
   --
   fake' pats "sanity" $ const $
-    need [ fakeFile "build-error", "lint" ]
+    need [ fakeFile "build-error", fakeFile "lint" ]
 
   -- | Default things to run.
   --
-  want [ "build-error", "lint", "format" ]
+  want [ fakeFile "sanity", fakeFile "format" ]
diff --git a/preamble.cabal b/preamble.cabal
--- a/preamble.cabal
+++ b/preamble.cabal
@@ -1,5 +1,5 @@
 name:                  preamble
-version:               0.0.14
+version:               0.0.15
 synopsis:              Yet another prelude.
 description:           A prelude built on basic-prelude.
 homepage:              https://github.com/swift-nav/preamble
@@ -28,7 +28,7 @@
   default-language:    Haskell2010
   ghc-options:         -Wall
   build-depends:       aeson
-                     , base >= 4.8 && < 4.9
+                     , base == 4.8.*
                      , basic-prelude
                      , exceptions
                      , fast-logger
diff --git a/src/Preamble/Aeson.hs b/src/Preamble/Aeson.hs
--- a/src/Preamble/Aeson.hs
+++ b/src/Preamble/Aeson.hs
@@ -6,6 +6,7 @@
   ( camelOptions
   , snakeOptions
   , spinalOptions
+  , eitherResult
   ) where
 
 import Data.Aeson.Types
@@ -45,3 +46,9 @@
   , constructorTagModifier = unpack . toSpinal . unprefix . lowerHead . pack
   , omitNothingFields      = True
   }
+
+-- | Convert Aeson Result into an Either.
+--
+eitherResult :: Result a -> Either String a
+eitherResult (Error s) = Left s
+eitherResult (Success a) = Right a
diff --git a/src/Preamble/Prelude.hs b/src/Preamble/Prelude.hs
--- a/src/Preamble/Prelude.hs
+++ b/src/Preamble/Prelude.hs
@@ -7,6 +7,7 @@
   ( module Exports
   , runResourceT
   , maybe'
+  , either'
   , maybe_
   , eitherThrowIO
   , maybeThrowIO
@@ -28,6 +29,11 @@
 --
 maybe' :: Maybe a -> b -> (a -> b) -> b
 maybe' m b a = maybe b a m
+
+-- | either with hanging function.
+--
+either' :: Either a b -> (a -> c) -> (b -> c) -> c
+either' e b a = either b a e
 
 -- | Maybe that returns () if Nothing
 --
