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