on 1.2.0.0 help sign in
31 lines 730 B history raw
1{-# LANGUAGE CPP #-}
2#ifdef HAS_BOTH_AESON_AND_BENCHMARKS
3{-# LANGUAGE PackageImports #-}
4#endif
6{-# OPTIONS_GHC -fno-warn-unused-imports #-}
8module Typed.Common (load) where
10import Prelude ()
11import Prelude.Compat
13import Data.ByteString.Lazy as L
14import System.Exit
15import System.IO
17#ifndef HAS_BOTH_AESON_AND_BENCHMARKS
18import Data.Aeson hiding (Result)
19#else
20import "aeson" Data.Aeson hiding (Result)
21import qualified "aeson-benchmarks" Data.Aeson as B
22#endif
24load :: FromJSON a => FilePath -> IO a
25load fileName = do
26 mv <- eitherDecode' <$> L.readFile fileName
27 case mv of
28 Right v -> return v
29 Left err -> do
30 hPutStrLn stderr $ fileName ++ ": JSON decode failed - " ++ err
31 exitWith (ExitFailure 1)