on master help sign in
Normalize export lists and pragmas
2d67325Adam Bergmark
Data/Aeson/Encode.hs+2−1
@@ -9,7 +9,8 @@
9--
9--
10-- This module is left to supply limited backwards-compatibility.
10-- This module is left to supply limited backwards-compatibility.
11module Data.Aeson.Encode {-# DEPRECATED "Use Data.Aeson or Data.Aeson.Text instead" #-}
11module Data.Aeson.Encode {-# DEPRECATED "Use Data.Aeson or Data.Aeson.Text instead" #-}
12+ (
12− ( encode
13+ encode
13 , encodeToTextBuilder
14 , encodeToTextBuilder
14 ) where
15 ) where
15
16
Data/Aeson/Encoding/Builder.hs+3−1
@@ -1,4 +1,6 @@
1−{-# LANGUAGE BangPatterns, CPP, OverloadedStrings #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE CPP #-}
3+{-# LANGUAGE OverloadedStrings #-}
2
4
3-- |
5-- |
4-- Module: Data.Aeson.Encoding.Builder
6-- Module: Data.Aeson.Encoding.Builder
Data/Aeson/Encoding/Internal.hs+3−3
@@ -1,7 +1,7 @@
1{-# LANGUAGE DeriveDataTypeable #-}
1{-# LANGUAGE DeriveDataTypeable #-}
2−{-# LANGUAGE EmptyDataDecls #-}
2+{-# LANGUAGE EmptyDataDecls #-}
3−{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE RankNTypes #-}
4+{-# LANGUAGE RankNTypes #-}
5module Data.Aeson.Encoding.Internal
5module Data.Aeson.Encoding.Internal
6 (
6 (
7 -- * Encoding
7 -- * Encoding
Data/Aeson/Internal/Functions.hs+2−1
@@ -8,7 +8,8 @@
8-- Portability: portable
8-- Portability: portable
9
9
10module Data.Aeson.Internal.Functions
10module Data.Aeson.Internal.Functions
11+ (
11− ( mapHashKeyVal
12+ mapHashKeyVal
12 , mapKeyVal
13 , mapKeyVal
13 , mapKey
14 , mapKey
14 ) where
15 ) where
Data/Aeson/Parser/Internal.hs+3−1
@@ -1,4 +1,6 @@
1−{-# LANGUAGE BangPatterns, CPP, OverloadedStrings #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE CPP #-}
3+{-# LANGUAGE OverloadedStrings #-}
2#if MIN_VERSION_ghc_prim(0,3,1)
4#if MIN_VERSION_ghc_prim(0,3,1)
3{-# LANGUAGE MagicHash #-}
5{-# LANGUAGE MagicHash #-}
4#endif
6#endif
Data/Aeson/Parser/Time.hs+2−1
@@ -1,4 +1,5 @@
1−{-# LANGUAGE BangPatterns, ScopedTypeVariables #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE ScopedTypeVariables #-}
2
3
3-- |
4-- |
4-- Module: Data.Aeson.Parser.Time
5-- Module: Data.Aeson.Parser.Time
Data/Aeson/Text.hs+4−2
@@ -1,4 +1,5 @@
1−{-# LANGUAGE BangPatterns, OverloadedStrings #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE OverloadedStrings #-}
2-- |
3-- |
3-- Module: Data.Aeson.Text
4-- Module: Data.Aeson.Text
4-- Copyright: (c) 2012-2016 Bryan O'Sullivan
5-- Copyright: (c) 2012-2016 Bryan O'Sullivan
@@ -14,7 +15,8 @@
14-- You can use the conversions to 'Builder's when embedding JSON messages as
15-- You can use the conversions to 'Builder's when embedding JSON messages as
15-- parts of a protocol.
16-- parts of a protocol.
16module Data.Aeson.Text
17module Data.Aeson.Text
18+ (
17− ( encodeToLazyText
19+ encodeToLazyText
18 , encodeToTextBuilder
20 , encodeToTextBuilder
19 ) where
21 ) where
20
22
Data/Aeson/Types/FromJSON.hs+17−16
@@ -1,21 +1,21 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE DataKinds #-}
3−{-# LANGUAGE DefaultSignatures #-}
3+{-# LANGUAGE DefaultSignatures #-}
4−{-# LANGUAGE FlexibleContexts #-}
4+{-# LANGUAGE FlexibleContexts #-}
5−{-# LANGUAGE FlexibleInstances #-}
5+{-# LANGUAGE FlexibleInstances #-}
6−{-# LANGUAGE GADTs #-}
6+{-# LANGUAGE GADTs #-}
7{-# LANGUAGE MultiParamTypeClasses #-}
7{-# LANGUAGE MultiParamTypeClasses #-}
8−{-# LANGUAGE NamedFieldPuns #-}
8+{-# LANGUAGE NamedFieldPuns #-}
9−{-# LANGUAGE OverloadedStrings #-}
9+{-# LANGUAGE OverloadedStrings #-}
10−{-# LANGUAGE RecordWildCards #-}
10+{-# LANGUAGE RecordWildCards #-}
11−{-# LANGUAGE ScopedTypeVariables #-}
11+{-# LANGUAGE ScopedTypeVariables #-}
12−{-# LANGUAGE TypeOperators #-}
12+{-# LANGUAGE TypeOperators #-}
13−{-# LANGUAGE TypeSynonymInstances #-}
13+{-# LANGUAGE TypeSynonymInstances #-}
14−{-# LANGUAGE UndecidableInstances #-}
14+{-# LANGUAGE UndecidableInstances #-}
15−{-# LANGUAGE ViewPatterns #-}
15+{-# LANGUAGE ViewPatterns #-}
16
16
17#if __GLASGOW_HASKELL__ >= 706
17#if __GLASGOW_HASKELL__ >= 706
18−{-# LANGUAGE PolyKinds #-}
18+{-# LANGUAGE PolyKinds #-}
19#endif
19#endif
20
20
21#include "overlapping-compat.h"
21#include "overlapping-compat.h"
@@ -23,7 +23,8 @@
23-- TODO: Drop this when we remove support for Data.Attoparsec.Number
23-- TODO: Drop this when we remove support for Data.Attoparsec.Number
24{-# OPTIONS_GHC -fno-warn-deprecations #-}
24{-# OPTIONS_GHC -fno-warn-deprecations #-}
25
25
26−module Data.Aeson.Types.FromJSON (
26+module Data.Aeson.Types.FromJSON
27+ (
27 -- * Core JSON classes
28 -- * Core JSON classes
28 FromJSON(..)
29 FromJSON(..)
29 -- * Liftings to unary and binary type constructors
30 -- * Liftings to unary and binary type constructors
Data/Aeson/Types/Generic.hs+9−9
@@ -1,13 +1,13 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP #-}
2−{-# LANGUAGE DataKinds #-}
2+{-# LANGUAGE DataKinds #-}
3−{-# LANGUAGE EmptyDataDecls #-}
3+{-# LANGUAGE EmptyDataDecls #-}
4−{-# LANGUAGE FlexibleInstances #-}
4+{-# LANGUAGE FlexibleInstances #-}
5{-# LANGUAGE FunctionalDependencies #-}
5{-# LANGUAGE FunctionalDependencies #-}
6−{-# LANGUAGE KindSignatures #-}
6+{-# LANGUAGE KindSignatures #-}
7−{-# LANGUAGE MultiParamTypeClasses #-}
7+{-# LANGUAGE MultiParamTypeClasses #-}
8−{-# LANGUAGE ScopedTypeVariables #-}
8+{-# LANGUAGE ScopedTypeVariables #-}
9−{-# LANGUAGE TypeOperators #-}
9+{-# LANGUAGE TypeOperators #-}
10−{-# LANGUAGE UndecidableInstances #-}
10+{-# LANGUAGE UndecidableInstances #-}
11
11
12#include "overlapping-compat.h"
12#include "overlapping-compat.h"
13
13
Data/Aeson/Types/Internal.hs+5−2
@@ -1,5 +1,8 @@
1+{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DeriveDataTypeable #-}
1−{-# LANGUAGE CPP, DeriveDataTypeable, GeneralizedNewtypeDeriving, Rank2Types,
3+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
4+{-# LANGUAGE Rank2Types #-}
2− RecordWildCards #-}
5+{-# LANGUAGE RecordWildCards #-}
3#if __GLASGOW_HASKELL__ >= 800
6#if __GLASGOW_HASKELL__ >= 800
4-- a) THQ works on cross-compilers and unregisterised GHCs
7-- a) THQ works on cross-compilers and unregisterised GHCs
5-- b) may make compilation faster as no dynamic loading is ever needed (not sure about this)
8-- b) may make compilation faster as no dynamic loading is ever needed (not sure about this)
Data/Aeson/Types/ToJSON.hs+18−17
@@ -1,22 +1,22 @@
1−{-# LANGUAGE BangPatterns #-}
1+{-# LANGUAGE BangPatterns #-}
2−{-# LANGUAGE CPP #-}
2+{-# LANGUAGE CPP #-}
3−{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DataKinds #-}
4−{-# LANGUAGE DefaultSignatures #-}
4+{-# LANGUAGE DefaultSignatures #-}
5−{-# LANGUAGE FlexibleContexts #-}
5+{-# LANGUAGE FlexibleContexts #-}
6−{-# LANGUAGE FlexibleInstances #-}
6+{-# LANGUAGE FlexibleInstances #-}
7−{-# LANGUAGE GADTs #-}
7+{-# LANGUAGE GADTs #-}
8{-# LANGUAGE MultiParamTypeClasses #-}
8{-# LANGUAGE MultiParamTypeClasses #-}
9−{-# LANGUAGE NamedFieldPuns #-}
9+{-# LANGUAGE NamedFieldPuns #-}
10−{-# LANGUAGE OverloadedStrings #-}
10+{-# LANGUAGE OverloadedStrings #-}
11−{-# LANGUAGE PatternGuards #-}
11+{-# LANGUAGE PatternGuards #-}
12−{-# LANGUAGE RecordWildCards #-}
12+{-# LANGUAGE RecordWildCards #-}
13−{-# LANGUAGE ScopedTypeVariables #-}
13+{-# LANGUAGE ScopedTypeVariables #-}
14−{-# LANGUAGE TypeOperators #-}
14+{-# LANGUAGE TypeOperators #-}
15−{-# LANGUAGE TypeSynonymInstances #-}
15+{-# LANGUAGE TypeSynonymInstances #-}
16−{-# LANGUAGE UndecidableInstances #-}
16+{-# LANGUAGE UndecidableInstances #-}
17
17
18#if __GLASGOW_HASKELL__ >= 706
18#if __GLASGOW_HASKELL__ >= 706
19−{-# LANGUAGE PolyKinds #-}
19+{-# LANGUAGE PolyKinds #-}
20#endif
20#endif
21
21
22#include "overlapping-compat.h"
22#include "overlapping-compat.h"
@@ -24,7 +24,8 @@
24-- TODO: Drop this when we remove support for Data.Attoparsec.Number
24-- TODO: Drop this when we remove support for Data.Attoparsec.Number
25{-# OPTIONS_GHC -fno-warn-deprecations #-}
25{-# OPTIONS_GHC -fno-warn-deprecations #-}
26
26
27−module Data.Aeson.Types.ToJSON (
27+module Data.Aeson.Types.ToJSON
28+ (
28 -- * Core JSON classes
29 -- * Core JSON classes
29 ToJSON(..)
30 ToJSON(..)
30 -- * Liftings to unary and binary type constructors
31 -- * Liftings to unary and binary type constructors
benchmarks/AesonCompareAutoInstances.hs+9−14
@@ -1,24 +1,19 @@
1−{-# LANGUAGE DeriveDataTypeable, DeriveGeneric, TemplateHaskell #-}
1+{-# LANGUAGE DeriveDataTypeable #-}
2+{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE TemplateHaskell #-}
2
4
3module Main where
5module Main where
4
6
5−--------------------------------------------------------------------------------
6−
7−import Criterion.Main hiding (defaultOptions)
8−
9import Control.DeepSeq (NFData, rnf, deepseq)
7import Control.DeepSeq (NFData, rnf, deepseq)
10−
8+import Criterion.Main hiding (defaultOptions)
11−import Data.Typeable (Typeable)
9+import Data.Aeson.Encode
10+import Data.Aeson.TH
11+import Data.Aeson.Types
12import Data.Data (Data)
12import Data.Data (Data)
13+import Data.Typeable (Typeable)
13import GHC.Generics (Generic)
14import GHC.Generics (Generic)
14−
15−import Data.Aeson.Types
16−import Data.Aeson.TH
17−import qualified Data.Aeson.Generic as G (fromJSON, toJSON)
18−
19−import Data.Aeson.Encode
20−
21import Options
15import Options
16+import qualified Data.Aeson.Generic as G (fromJSON, toJSON)
22
17
23--------------------------------------------------------------------------------
18--------------------------------------------------------------------------------
24
19
benchmarks/AesonEncode.hs+4−2
@@ -1,5 +1,7 @@
1−{-# LANGUAGE BangPatterns, OverloadedStrings #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE OverloadedStrings #-}
2
3
4+import Control.DeepSeq
3import Control.Exception
5import Control.Exception
4import Control.Monad
6import Control.Monad
5import Data.Aeson
7import Data.Aeson
@@ -9,7 +11,6 @@ import Data.Time.Clock
9import System.Environment (getArgs)
11import System.Environment (getArgs)
10import System.IO
12import System.IO
11import qualified Data.ByteString as B
13import qualified Data.ByteString as B
12−import Control.DeepSeq
13
14
14main :: IO ()
15main :: IO ()
15main = do
16main = do
@@ -17,6 +18,7 @@ main = do
17 let (cnt,args) = case args0 of
18 let (cnt,args) = case args0 of
18 (i:c:a) | all isDigit i && all isDigit c -> (c,a)
19 (i:c:a) | all isDigit i && all isDigit c -> (c,a)
19 (c:a) -> (c,a)
20 (c:a) -> (c,a)
21+ [] -> error "Unexpected empty list"
20 let count = read cnt :: Int
22 let count = read cnt :: Int
21 forM_ args $ \arg -> bracket (openFile arg ReadMode) hClose $ \h -> do
23 forM_ args $ \arg -> bracket (openFile arg ReadMode) hClose $ \h -> do
22 putStrLn $ arg ++ ":"
24 putStrLn $ arg ++ ":"
benchmarks/AesonFoldable.hs+4−5
@@ -1,11 +1,10 @@
1−{-# LANGUAGE OverloadedStrings, PackageImports #-}
1+{-# LANGUAGE OverloadedStrings #-}
2+{-# LANGUAGE PackageImports #-}
2import Criterion.Main
3import Criterion.Main
3
4
4−import qualified "aeson" Data.Aeson as A
5−import qualified "aeson-benchmarks" Data.Aeson as B
6−
7import Data.Foldable (toList)
5import Data.Foldable (toList)
8−
6+import qualified "aeson" Data.Aeson as A
7+import qualified "aeson-benchmarks" Data.Aeson as B
9import qualified Data.Sequence as S
8import qualified Data.Sequence as S
10import qualified Data.Vector as V
9import qualified Data.Vector as V
11import qualified Data.Vector.Unboxed as U
10import qualified Data.Vector.Unboxed as U
benchmarks/AesonMap.hs+10−7
@@ -1,19 +1,22 @@
1−{-# LANGUAGE OverloadedStrings, RankNTypes, PackageImports, FlexibleContexts #-}
1+{-# LANGUAGE FlexibleContexts #-}
2+{-# LANGUAGE OverloadedStrings #-}
3+{-# LANGUAGE PackageImports #-}
4+{-# LANGUAGE RankNTypes #-}
5+
6+{-# OPTIONS -fno-warn-orphans #-}
2
7
3import Control.DeepSeq
8import Control.DeepSeq
4import Criterion.Main
9import Criterion.Main
5import Data.Hashable
10import Data.Hashable
6import Data.Proxy (Proxy (..))
11import Data.Proxy (Proxy (..))
7import Data.Tagged (Tagged (..))
12import Data.Tagged (Tagged (..))
8−import qualified Data.ByteString.Lazy as LBS
9−import qualified Data.Text as T
10−import qualified Data.Map as M
11−import qualified Data.HashMap.Strict as HM
12−
13import qualified "aeson" Data.Aeson as A
13import qualified "aeson" Data.Aeson as A
14−
15import qualified "aeson-benchmarks" Data.Aeson as B
14import qualified "aeson-benchmarks" Data.Aeson as B
16import qualified "aeson-benchmarks" Data.Aeson.Types as B (fromJSONKeyCoerce)
15import qualified "aeson-benchmarks" Data.Aeson.Types as B (fromJSONKeyCoerce)
16+import qualified Data.ByteString.Lazy as LBS
17+import qualified Data.HashMap.Strict as HM
18+import qualified Data.Map as M
19+import qualified Data.Text as T
17
20
18value :: Int -> HM.HashMap T.Text T.Text
21value :: Int -> HM.HashMap T.Text T.Text
19value n = HM.fromList $ map f [1..n]
22value n = HM.fromList $ map f [1..n]
benchmarks/AesonParse.hs+3−2
@@ -1,9 +1,10 @@
1−{-# LANGUAGE BangPatterns, OverloadedStrings #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE PackageImports #-}
3{-# LANGUAGE PackageImports #-}
3
4
5+import "aeson-benchmarks" Data.Aeson
4import Control.Exception
6import Control.Exception
5import Control.Monad
7import Control.Monad
6−import "aeson-benchmarks" Data.Aeson
7import Data.Attoparsec.ByteString (IResult(..), parseWith)
8import Data.Attoparsec.ByteString (IResult(..), parseWith)
8import Data.Time.Clock
9import Data.Time.Clock
9import System.Environment (getArgs)
10import System.Environment (getArgs)
benchmarks/AesonTuples.hs+1−3
@@ -1,9 +1,7 @@
1module Main where
1module Main where
2
2
3−--------------------------------------------------------------------------------
4−
5−import Criterion.Main
6import Control.DeepSeq (deepseq)
3import Control.DeepSeq (deepseq)
4+import Criterion.Main
7import Data.Aeson
5import Data.Aeson
8
6
9--------------------------------------------------------------------------------
7--------------------------------------------------------------------------------
benchmarks/Compare.hs+2−2
@@ -1,5 +1,5 @@
1−{-# LANGUAGE ScopedTypeVariables #-}
2{-# LANGUAGE PackageImports #-}
1{-# LANGUAGE PackageImports #-}
2+{-# LANGUAGE ScopedTypeVariables #-}
3
3
4module Main (main) where
4module Main (main) where
5
5
@@ -11,8 +11,8 @@ import Data.Json.Builder
11import Twitter
11import Twitter
12import Twitter.Manual ()
12import Twitter.Manual ()
13import Typed.Common
13import Typed.Common
14−import qualified Compare.JsonBench as JsonBench
15import qualified "aeson-benchmarks" Data.Aeson as Aeson
14import qualified "aeson-benchmarks" Data.Aeson as Aeson
15+import qualified Compare.JsonBench as JsonBench
16
16
17main :: IO ()
17main :: IO ()
18main =
18main =
benchmarks/Compare/BufferBuilder.hs+3−2
@@ -1,11 +1,12 @@
1−{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
1+{-# LANGUAGE OverloadedStrings #-}
2+{-# LANGUAGE RecordWildCards #-}
2{-# OPTIONS_GHC -fno-warn-orphans #-}
3{-# OPTIONS_GHC -fno-warn-orphans #-}
3
4
4module Compare.BufferBuilder () where
5module Compare.BufferBuilder () where
5
6
6import Data.BufferBuilder.Json
7import Data.BufferBuilder.Json
7−import Data.Monoid ((<>))
8import Data.Int (Int64)
8import Data.Int (Int64)
9+import Data.Monoid ((<>))
9import Prelude hiding (id)
10import Prelude hiding (id)
10import Twitter
11import Twitter
11import qualified Data.BufferBuilder.Utf8 as UB
12import qualified Data.BufferBuilder.Utf8 as UB
benchmarks/Compare/JsonBench.hs+5−2
@@ -2,9 +2,12 @@
2--
2--
3-- https://github.com/chadaustin/buffer-builder/blob/master/test.json
3-- https://github.com/chadaustin/buffer-builder/blob/master/test.json
4
4
5−{-# LANGUAGE BangPatterns, OverloadedStrings, RecordWildCards #-}
5+{-# LANGUAGE BangPatterns #-}
6{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6{-# LANGUAGE GeneralizedNewtypeDeriving #-}
7−{-# LANGUAGE MagicHash, ScopedTypeVariables #-}
7+{-# LANGUAGE MagicHash #-}
8+{-# LANGUAGE OverloadedStrings #-}
9+{-# LANGUAGE RecordWildCards #-}
10+{-# LANGUAGE ScopedTypeVariables #-}
8
11
9module Compare.JsonBench (benchmarks) where
12module Compare.JsonBench (benchmarks) where
10
13
benchmarks/CompareWithJSON.hs+1−1
@@ -7,10 +7,10 @@ import Criterion.Main
7import qualified Data.Aeson as A
7import qualified Data.Aeson as A
8import qualified Data.Aeson.Text as A
8import qualified Data.Aeson.Text as A
9import qualified Data.ByteString.Lazy as BL
9import qualified Data.ByteString.Lazy as BL
10−import qualified Text.JSON as J
11import qualified Data.Text.Lazy as TL
10import qualified Data.Text.Lazy as TL
12import qualified Data.Text.Lazy.Builder as TLB
11import qualified Data.Text.Lazy.Builder as TLB
13import qualified Data.Text.Lazy.Encoding as TLE
12import qualified Data.Text.Lazy.Encoding as TLE
13+import qualified Text.JSON as J
14
14
15instance (NFData v) => NFData (J.JSObject v) where
15instance (NFData v) => NFData (J.JSObject v) where
16 rnf o = rnf (J.fromJSObject o)
16 rnf o = rnf (J.fromJSObject o)
benchmarks/Dates.hs−1
@@ -1,4 +1,3 @@
1−import Control.Applicative ((<$>))
2import Criterion.Main
1import Criterion.Main
3import Data.Aeson (decode, encode)
2import Data.Aeson (decode, encode)
4import Data.Time.Clock (UTCTime)
3import Data.Time.Clock (UTCTime)
benchmarks/JsonParse.hs+3−2
@@ -1,11 +1,12 @@
1−{-# LANGUAGE BangPatterns, ScopedTypeVariables #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE ScopedTypeVariables #-}
2{-# OPTIONS_GHC -fno-warn-orphans #-}
3{-# OPTIONS_GHC -fno-warn-orphans #-}
3
4
4import Control.DeepSeq
5import Control.DeepSeq
5import Control.Monad
6import Control.Monad
6−import Text.JSON
7import Data.Time.Clock
7import Data.Time.Clock
8import System.Environment (getArgs)
8import System.Environment (getArgs)
9+import Text.JSON
9
10
10instance NFData JSValue where
11instance NFData JSValue where
11 rnf JSNull = ()
12 rnf JSNull = ()
benchmarks/Micro.hs−1
@@ -5,7 +5,6 @@ import qualified Data.Aeson.Encoding.Builder as AB
5import qualified Data.ByteString.Builder as B
5import qualified Data.ByteString.Builder as B
6import qualified Data.Text as T
6import qualified Data.Text as T
7
7
8−
9main :: IO ()
8main :: IO ()
10main = do
9main = do
11 let txt = "append (append b (primBounded w1 x1)) (primBounded w2 x2)"
10 let txt = "append (append b (primBounded w1 x1)) (primBounded w2 x2)"
benchmarks/ReadFile.hs+2−1
@@ -1,4 +1,5 @@
1−{-# LANGUAGE BangPatterns, OverloadedStrings #-}
1+{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE OverloadedStrings #-}
2
3
3import Control.DeepSeq
4import Control.DeepSeq
4import Control.Exception
5import Control.Exception
benchmarks/Typed/Common.hs+9−6
@@ -1,6 +1,14 @@
1−{-# LANGUAGE CPP, PackageImports #-}
1+{-# LANGUAGE CPP #-}
2+{-# LANGUAGE PackageImports #-}
3+
4+{-# OPTIONS -fno-warn-unused-imports #-}
5+
2module Typed.Common (load) where
6module Typed.Common (load) where
3
7
8+import Data.ByteString.Lazy as L
9+import System.Exit
10+import System.IO
11+
4#ifndef HAS_BOTH_AESON_AND_BENCHMARKS
12#ifndef HAS_BOTH_AESON_AND_BENCHMARKS
5import Data.Aeson hiding (Result)
13import Data.Aeson hiding (Result)
6#else
14#else
@@ -8,11 +16,6 @@ import "aeson" Data.Aeson hiding (Result)
8import qualified "aeson-benchmarks" Data.Aeson as B
16import qualified "aeson-benchmarks" Data.Aeson as B
9#endif
17#endif
10
18
11−import Data.ByteString.Lazy as L
12−import Control.Applicative
13−import System.IO
14−import System.Exit
15−
16load :: FromJSON a => FilePath -> IO a
19load :: FromJSON a => FilePath -> IO a
17load fileName = do
20load fileName = do
18 mv <- eitherDecode' <$> L.readFile fileName
21 mv <- eitherDecode' <$> L.readFile fileName
benchmarks/Typed/Generic.hs+1−3
@@ -2,13 +2,11 @@
2module Typed.Generic (benchmarks) where
2module Typed.Generic (benchmarks) where
3
3
4import "aeson" Data.Aeson hiding (Result)
4import "aeson" Data.Aeson hiding (Result)
5−import qualified "aeson-benchmarks" Data.Aeson as B
6−
7−import Control.Applicative
8import Criterion
5import Criterion
9import Data.ByteString.Lazy as L
6import Data.ByteString.Lazy as L
10import Twitter.TH
7import Twitter.TH
11import Typed.Common
8import Typed.Common
9+import qualified "aeson-benchmarks" Data.Aeson as B
12
10
13encodeDirectA :: Result -> L.ByteString
11encodeDirectA :: Result -> L.ByteString
14encodeDirectA = encode
12encodeDirectA = encode
benchmarks/Typed/Manual.hs+1−3
@@ -2,13 +2,11 @@
2module Typed.Manual (benchmarks) where
2module Typed.Manual (benchmarks) where
3
3
4import "aeson" Data.Aeson hiding (Result)
4import "aeson" Data.Aeson hiding (Result)
5−import qualified "aeson-benchmarks" Data.Aeson as B
6−
7−import Control.Applicative
8import Criterion
5import Criterion
9import Data.ByteString.Lazy as L
6import Data.ByteString.Lazy as L
10import Twitter.Manual
7import Twitter.Manual
11import Typed.Common
8import Typed.Common
9+import qualified "aeson-benchmarks" Data.Aeson as B
12
10
13encodeDirectA :: Result -> L.ByteString
11encodeDirectA :: Result -> L.ByteString
14encodeDirectA = encode
12encodeDirectA = encode
benchmarks/Typed/TH.hs+1−4
@@ -2,14 +2,11 @@
2module Typed.TH (benchmarks) where
2module Typed.TH (benchmarks) where
3
3
4import "aeson" Data.Aeson hiding (Result)
4import "aeson" Data.Aeson hiding (Result)
5−import qualified "aeson-benchmarks" Data.Aeson as B
6−
7−import Control.Applicative
8import Criterion
5import Criterion
9−import Data.ByteString.Builder as B
10import Data.ByteString.Lazy as L
6import Data.ByteString.Lazy as L
11import Twitter.TH
7import Twitter.TH
12import Typed.Common
8import Typed.Common
9+import qualified "aeson-benchmarks" Data.Aeson as B
13
10
14encodeDirectA :: Result -> L.ByteString
11encodeDirectA :: Result -> L.ByteString
15encodeDirectA = encode
12encodeDirectA = encode
benchmarks/aeson-benchmarks.cabal+1−1
@@ -184,7 +184,7 @@ executable aeson-benchmark-map
184 main-is: AesonMap.hs
184 main-is: AesonMap.hs
185 ghc-options: -Wall -O2 -rtsopts
185 ghc-options: -Wall -O2 -rtsopts
186 build-depends:
186 build-depends:
187− aeson == 0.11.*,
187+ aeson,
188 aeson-benchmarks,
188 aeson-benchmarks,
189 base,
189 base,
190 criterion >= 1.0,
190 criterion >= 1.0,
examples/Generic.hs+2−5
@@ -6,17 +6,14 @@
6-- automatically derive the Generic class for us.
6-- automatically derive the Generic class for us.
7
7
8{-# LANGUAGE DeriveGeneric #-}
8{-# LANGUAGE DeriveGeneric #-}
9−
10{-# LANGUAGE OverloadedStrings #-}
9{-# LANGUAGE OverloadedStrings #-}
11
10
12import Data.Aeson (FromJSON, ToJSON, decode, encode)
11import Data.Aeson (FromJSON, ToJSON, decode, encode)
13import qualified Data.ByteString.Lazy.Char8 as BL
12import qualified Data.ByteString.Lazy.Char8 as BL
13+import GHC.Generics (Generic)
14
14
15-- To decode or encode a value using the generic machinery, we must
15-- To decode or encode a value using the generic machinery, we must
16-- make the type an instance of the Generic class.
16-- make the type an instance of the Generic class.
17−
18−import GHC.Generics (Generic)
19−
20data Coord = Coord { x :: Double, y :: Double }
17data Coord = Coord { x :: Double, y :: Double }
21 deriving (Show, Generic)
18 deriving (Show, Generic)
22
19
@@ -31,5 +28,5 @@ main :: IO ()
31main = do
28main = do
32 let req = decode "{\"x\":3.0,\"y\":-1.0}" :: Maybe Coord
29 let req = decode "{\"x\":3.0,\"y\":-1.0}" :: Maybe Coord
33 print req
30 print req
34− let reply = Coord 123.4 20
31+ let reply = Coord { x = 123.4, y = 20 }
35 BL.putStrLn (encode reply)
32 BL.putStrLn (encode reply)
examples/Simplest.hs+3−2
@@ -1,6 +1,7 @@
1−{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
1+{-# LANGUAGE OverloadedStrings #-}
2+{-# LANGUAGE RecordWildCards #-}
2
3
3−import Control.Applicative ((<$>), (<*>), empty)
4+import Control.Applicative (empty)
4import Data.Aeson
5import Data.Aeson
5import Data.Monoid
6import Data.Monoid
6import qualified Data.ByteString.Lazy.Char8 as BL
7import qualified Data.ByteString.Lazy.Char8 as BL
examples/TemplateHaskell.hs+2−4
@@ -1,10 +1,8 @@
1-- We can use Template Haskell (TH) to generate instances of the
1-- We can use Template Haskell (TH) to generate instances of the
2-- FromJSON and ToJSON classes automatically. This is the fastest way
2-- FromJSON and ToJSON classes automatically. This is the fastest way
3-- to add JSON support for a type.
3-- to add JSON support for a type.
4−
5−{-# LANGUAGE TemplateHaskell #-}
6−
7{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedStrings #-}
5+{-# LANGUAGE TemplateHaskell #-}
8
6
9import Data.Aeson (decode, encode)
7import Data.Aeson (decode, encode)
10import Data.Aeson.TH (deriveJSON, defaultOptions)
8import Data.Aeson.TH (deriveJSON, defaultOptions)
@@ -21,5 +19,5 @@ main :: IO ()
21main = do
19main = do
22 let req = decode "{\"x\":3.0,\"y\":-1.0}" :: Maybe Coord
20 let req = decode "{\"x\":3.0,\"y\":-1.0}" :: Maybe Coord
23 print req
21 print req
24− let reply = Coord 123.4 20
22+ let reply = Coord { x = 123.4, y = 20 }
25 BL.putStrLn (encode reply)
23 BL.putStrLn (encode reply)
examples/Twitter.hs+3−3
@@ -8,7 +8,8 @@
8-- renamed "type" to "type_" in the *.json files, to avoid overlap
8-- renamed "type" to "type_" in the *.json files, to avoid overlap
9-- with a Haskell reserved keyword.
9-- with a Haskell reserved keyword.
10
10
11−{-# LANGUAGE DeriveDataTypeable, DeriveGeneric #-}
11+{-# LANGUAGE DeriveDataTypeable #-}
12+{-# LANGUAGE DeriveGeneric #-}
12
13
13module Twitter (
14module Twitter (
14 Metadata(..)
15 Metadata(..)
@@ -17,13 +18,12 @@ module Twitter (
17 , Result(..)
18 , Result(..)
18 ) where
19 ) where
19
20
21+import Control.DeepSeq
20import Data.Data (Typeable, Data)
22import Data.Data (Typeable, Data)
21import Data.Int (Int64)
23import Data.Int (Int64)
22import Data.Text (Text)
24import Data.Text (Text)
23−-- import Data.Time (ZonedTime)
24import GHC.Generics (Generic)
25import GHC.Generics (Generic)
25import Prelude hiding (id)
26import Prelude hiding (id)
26−import Control.DeepSeq
27
27
28data Metadata = Metadata {
28data Metadata = Metadata {
29 result_type :: Text
29 result_type :: Text
examples/Twitter/Generic.hs+2−2
@@ -1,6 +1,6 @@
1-- Use GHC generics to automatically generate good instances.
1-- Use GHC generics to automatically generate good instances.
2−
2+{-# LANGUAGE CPP #-}
3−{-# LANGUAGE CPP, PackageImports #-}
3+{-# LANGUAGE PackageImports #-}
4{-# OPTIONS_GHC -fno-warn-orphans #-}
4{-# OPTIONS_GHC -fno-warn-orphans #-}
5
5
6module Twitter.Generic
6module Twitter.Generic
examples/Twitter/Manual.hs+4−2
@@ -1,7 +1,9 @@
1-- Manually write instances.
1-- Manually write instances.
2
2
3−{-# LANGUAGE CPP, PackageImports #-}
3+{-# LANGUAGE CPP #-}
4+{-# LANGUAGE PackageImports #-}
4−{-# LANGUAGE OverloadedStrings, RecordWildCards #-}
5+{-# LANGUAGE OverloadedStrings #-}
6+{-# LANGUAGE RecordWildCards #-}
5{-# OPTIONS_GHC -fno-warn-orphans #-}
7{-# OPTIONS_GHC -fno-warn-orphans #-}
6
8
7module Twitter.Manual
9module Twitter.Manual
examples/Twitter/TH.hs+2−1
@@ -1,6 +1,7 @@
1-- Use Template Haskell to generate good instances.
1-- Use Template Haskell to generate good instances.
2
2
3−{-# LANGUAGE CPP, PackageImports #-}
3+{-# LANGUAGE CPP #-}
4+{-# LANGUAGE PackageImports #-}
4{-# LANGUAGE TemplateHaskell #-}
5{-# LANGUAGE TemplateHaskell #-}
5{-# OPTIONS_GHC -fno-warn-orphans #-}
6{-# OPTIONS_GHC -fno-warn-orphans #-}
6
7
tests/DataFamilies/Encoders.hs+1−1
@@ -6,8 +6,8 @@ module DataFamilies.Encoders where
6
6
7import Data.Aeson.TH
7import Data.Aeson.TH
8import Data.Aeson.Types
8import Data.Aeson.Types
9−import Options
10import DataFamilies.Types
9import DataFamilies.Types
10+import Options
11
11
12--------------------------------------------------------------------------------
12--------------------------------------------------------------------------------
13-- Nullary encoders/decoders
13-- Nullary encoders/decoders
tests/DataFamilies/Instances.hs+1−1
@@ -10,8 +10,8 @@ import Control.Applicative
10import Data.Aeson.TH
10import Data.Aeson.TH
11import Data.Aeson.Types (FromJSON(..))
11import Data.Aeson.Types (FromJSON(..))
12import DataFamilies.Types
12import DataFamilies.Types
13−import Test.QuickCheck (Arbitrary(..), elements, oneof)
14import Prelude
13import Prelude
14+import Test.QuickCheck (Arbitrary(..), elements, oneof)
15
15
16instance (Arbitrary a) => Arbitrary (Approx a) where
16instance (Arbitrary a) => Arbitrary (Approx a) where
17 arbitrary = Approx <$> arbitrary
17 arbitrary = Approx <$> arbitrary
tests/DataFamilies/Properties.hs−1
@@ -4,7 +4,6 @@ module DataFamilies.Properties (tests) where
4
4
5import DataFamilies.Encoders
5import DataFamilies.Encoders
6import DataFamilies.Instances ()
6import DataFamilies.Instances ()
7−
8import Properties hiding (tests)
7import Properties hiding (tests)
9
8
10import Test.Framework (Test, testGroup)
9import Test.Framework (Test, testGroup)
tests/DataFamilies/Types.hs+1−1
@@ -1,10 +1,10 @@
1-- DataKinds is needed for deriveAll0 calls on GHC 8
1-- DataKinds is needed for deriveAll0 calls on GHC 8
2{-# LANGUAGE DataKinds #-}
2{-# LANGUAGE DataKinds #-}
3+{-# LANGUAGE DeriveGeneric #-}
3{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE GADTs #-}
5{-# LANGUAGE GADTs #-}
5{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6{-# LANGUAGE StandaloneDeriving #-}
7{-# LANGUAGE StandaloneDeriving #-}
7−{-# LANGUAGE DeriveGeneric #-}
8{-# LANGUAGE TemplateHaskell #-}
8{-# LANGUAGE TemplateHaskell #-}
9{-# LANGUAGE TypeFamilies #-}
9{-# LANGUAGE TypeFamilies #-}
10
10
tests/Instances.hs+12−13
@@ -1,6 +1,6 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2−{-# LANGUAGE FlexibleInstances #-}
3{-# LANGUAGE FlexibleContexts #-}
2{-# LANGUAGE FlexibleContexts #-}
3+{-# LANGUAGE FlexibleInstances #-}
4{-# LANGUAGE OverloadedStrings #-}
4{-# LANGUAGE OverloadedStrings #-}
5{-# LANGUAGE RecordWildCards #-}
5{-# LANGUAGE RecordWildCards #-}
6{-# LANGUAGE StandaloneDeriving #-}
6{-# LANGUAGE StandaloneDeriving #-}
@@ -11,22 +11,21 @@ module Instances where
11import Prelude ()
11import Prelude ()
12import Prelude.Compat
12import Prelude.Compat
13
13
14−import Types
14+import Control.Applicative (Const(..), empty)
15−import Data.Function (on)
16import Control.Monad
15import Control.Monad
17−import Test.QuickCheck (Arbitrary(..), getNonNegative, elements,
18− listOf1, oneof, resize)
19−import Data.Time.Clock (UTCTime(..))
20−import Data.Time (ZonedTime(..), TimeZone(..))
21−import Data.List.NonEmpty (NonEmpty(..))
22−import Data.Version
23import Data.Aeson.Types
16import Data.Aeson.Types
24−import Control.Applicative (Const(..), empty)
17+import Data.Function (on)
25−import Data.Tagged (Tagged(..))
26−import Data.Proxy (Proxy(..))
27−import Data.Functor.Identity (Identity (..))
28import Data.Functor.Compose (Compose (..))
18import Data.Functor.Compose (Compose (..))
19+import Data.Functor.Identity (Identity (..))
20+import Data.List.NonEmpty (NonEmpty(..))
21+import Data.Proxy (Proxy(..))
22+import Data.Tagged (Tagged(..))
23+import Data.Time (ZonedTime(..), TimeZone(..))
24+import Data.Time.Clock (UTCTime(..))
25+import Data.Version
29import Functions
26import Functions
27+import Test.QuickCheck (Arbitrary(..), getNonNegative, elements, listOf1, oneof, resize)
28+import Types
30import qualified Data.DList as DList
29import qualified Data.DList as DList
31import qualified Data.HashMap.Strict as HM
30import qualified Data.HashMap.Strict as HM
32
31
tests/Properties.hs+13−13
@@ -1,7 +1,8 @@
1−{-# LANGUAGE CPP, OverloadedStrings, ScopedTypeVariables, RankNTypes #-}
1+{-# LANGUAGE CPP #-}
2−
2+{-# LANGUAGE FlexibleContexts #-} -- For arbitrary Compose
3−-- For Arbitrary Compose
3+{-# LANGUAGE OverloadedStrings #-}
4−{-# LANGUAGE FlexibleContexts #-}
4+{-# LANGUAGE RankNTypes #-}
5+{-# LANGUAGE ScopedTypeVariables #-}
5
6
6module Properties where
7module Properties where
7
8
@@ -10,23 +11,22 @@ import Prelude.Compat
10
11
11import Control.Applicative (Const)
12import Control.Applicative (Const)
12import Data.Aeson (eitherDecode, encode)
13import Data.Aeson (eitherDecode, encode)
14+import Data.Aeson.Encoding (encodingToLazyByteString)
13import Data.Aeson.Internal (IResult(..), formatError, ifromJSON, iparse)
15import Data.Aeson.Internal (IResult(..), formatError, ifromJSON, iparse)
14import Data.Aeson.Parser (value)
16import Data.Aeson.Parser (value)
15−import Data.Aeson.Encoding (encodingToLazyByteString)
16import Data.Aeson.Types
17import Data.Aeson.Types
17−import Data.Int (Int8)
18−import Data.Sequence (Seq)
19import Data.DList (DList)
18import Data.DList (DList)
20−import Data.Hashable (Hashable)
21−import Data.HashMap.Strict (HashMap)
22import Data.Functor.Compose (Compose (..))
19import Data.Functor.Compose (Compose (..))
23−import Data.Map (Map)
20+import Data.HashMap.Strict (HashMap)
21+import Data.Hashable (Hashable)
24−import Data.Ratio (Ratio)
22+import Data.Int (Int8)
25import Data.List.NonEmpty (NonEmpty)
23import Data.List.NonEmpty (NonEmpty)
26−import Data.Time (Day, LocalTime, NominalDiffTime, TimeOfDay, UTCTime,
24+import Data.Map (Map)
27− ZonedTime)
28import Data.Proxy (Proxy)
25import Data.Proxy (Proxy)
26+import Data.Ratio (Ratio)
27+import Data.Sequence (Seq)
29import Data.Tagged (Tagged)
28import Data.Tagged (Tagged)
29+import Data.Time (Day, LocalTime, NominalDiffTime, TimeOfDay, UTCTime, ZonedTime)
30import Data.Version (Version)
30import Data.Version (Version)
31import Encoders
31import Encoders
32import Instances ()
32import Instances ()
tests/Types.hs+3−3
@@ -8,13 +8,13 @@
8
8
9module Types where
9module Types where
10
10
11−import qualified Data.Map as Map
12import Data.Data
11import Data.Data
12+import Data.Functor.Compose (Compose (..))
13+import Data.Functor.Identity (Identity (..))
13import Data.Text
14import Data.Text
14import GHC.Generics
15import GHC.Generics
15import Test.QuickCheck (Property, counterexample)
16import Test.QuickCheck (Property, counterexample)
16−import Data.Functor.Compose (Compose (..))
17+import qualified Data.Map as Map
17−import Data.Functor.Identity (Identity (..))
18
18
19type I = Identity
19type I = Identity
20type Compose3 f g h = Compose (Compose f g) h
20type Compose3 f g h = Compose (Compose f g) h
tests/UnitTests.hs+23−19
@@ -1,4 +1,10 @@
1−{-# LANGUAGE CPP, GADTs, DeriveGeneric, OverloadedStrings, ScopedTypeVariables, TemplateHaskell, GeneralizedNewtypeDeriving #-}
1+{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE GADTs #-}
4+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5+{-# LANGUAGE OverloadedStrings #-}
6+{-# LANGUAGE ScopedTypeVariables #-}
7+{-# LANGUAGE TemplateHaskell #-}
2#if __GLASGOW_HASKELL__ >= 708
8#if __GLASGOW_HASKELL__ >= 708
3{-# LANGUAGE DataKinds #-}
9{-# LANGUAGE DataKinds #-}
4#endif
10#endif
@@ -10,45 +16,39 @@ module UnitTests (ioTests, tests) where
10import Prelude ()
16import Prelude ()
11import Prelude.Compat
17import Prelude.Compat
12
18
13−import Types (I, Compose3, Compose3', Approx(..))
14−import Instances ()
15−
16import Control.Applicative (Const(..))
19import Control.Applicative (Const(..))
17import Control.Monad (forM)
20import Control.Monad (forM)
18−import Data.Aeson (FromJSONKeyFunction(..), FromJSONKey(..), decode, eitherDecode, encode, genericParseJSON, genericToJSON, genericToEncoding, object, FromJSON(..), withObject, ToJSON1(..), (.=), (.:), (.:?), (.:!))
21+import Data.Aeson ((.=), (.:), (.:?), (.:!), FromJSON(..), FromJSONKeyFunction(..), FromJSONKey(..), ToJSON1(..), decode, eitherDecode, encode, genericParseJSON, genericToEncoding, genericToJSON, object, withObject)
19−import Data.Aeson.Text (encodeToTextBuilder)
20import Data.Aeson.Internal (JSONPathElement(..), formatError)
22import Data.Aeson.Internal (JSONPathElement(..), formatError)
21import Data.Aeson.TH (deriveJSON, deriveToJSON, deriveToJSON1)
23import Data.Aeson.TH (deriveJSON, deriveToJSON, deriveToJSON1)
24+import Data.Aeson.Text (encodeToTextBuilder)
22−import Data.Aeson.Types (ToJSON(..), Value, camelTo, camelTo2, defaultOptions, omitNothingFields, Options(..), SumEncoding(..))
25+import Data.Aeson.Types (Options(..), SumEncoding(..), ToJSON(..), Value, camelTo, camelTo2, defaultOptions, omitNothingFields)
23import Data.Char (toUpper)
26import Data.Char (toUpper)
24−import Data.Hashable (hash)
27+import Data.Fixed (Pico)
25−import Data.List.NonEmpty (NonEmpty(..))
28+import Data.Functor.Compose (Compose(..))
26−import Data.Functor.Compose (Compose (..))
29+import Data.Functor.Identity (Identity(..))
27import Data.Functor.Product (Product(..))
30import Data.Functor.Product (Product(..))
28import Data.Functor.Sum (Sum(..))
31import Data.Functor.Sum (Sum(..))
29−import Data.Functor.Identity (Identity (..))
32+import Data.Hashable (hash)
33+import Data.List.NonEmpty (NonEmpty(..))
30import Data.Maybe (fromMaybe)
34import Data.Maybe (fromMaybe)
31import Data.Proxy (Proxy(..))
35import Data.Proxy (Proxy(..))
32−import Data.Fixed (Pico)
36+import Data.Scientific (Scientific)
33import Data.Sequence (Seq)
37import Data.Sequence (Seq)
34import Data.Tagged (Tagged(..))
38import Data.Tagged (Tagged(..))
35import Data.Text (Text)
39import Data.Text (Text)
36import Data.Time (UTCTime)
40import Data.Time (UTCTime)
37import Data.Time.Format (parseTime)
41import Data.Time.Format (parseTime)
38import Data.Time.Locale.Compat (defaultTimeLocale)
42import Data.Time.Locale.Compat (defaultTimeLocale)
43+import Data.Word (Word8)
39import GHC.Generics (Generic)
44import GHC.Generics (Generic)
45+import Instances ()
40import Test.Framework (Test, testGroup)
46import Test.Framework (Test, testGroup)
41import Test.Framework.Providers.HUnit (testCase)
47import Test.Framework.Providers.HUnit (testCase)
42import Test.HUnit (Assertion, assertFailure, assertEqual)
48import Test.HUnit (Assertion, assertFailure, assertEqual)
49+import Types (Approx(..), Compose3, Compose3', I)
43import UnitTests.NullaryConstructors (nullaryConstructors)
50import UnitTests.NullaryConstructors (nullaryConstructors)
44−import Data.Word (Word8)
45−import Data.Scientific (Scientific)
46import qualified Data.ByteString.Lazy.Char8 as L
51import qualified Data.ByteString.Lazy.Char8 as L
47−import qualified Data.Text.Lazy.Builder as TLB
48−import qualified Data.Text.Lazy.Encoding as TLE
49−import qualified Data.Text.Lazy as LT
50−import qualified Data.Text.Lazy.Encoding as LT
51−
52import qualified Data.DList as DList
52import qualified Data.DList as DList
53import qualified Data.HashMap.Strict as HM
53import qualified Data.HashMap.Strict as HM
54import qualified Data.HashSet as HashSet
54import qualified Data.HashSet as HashSet
@@ -57,6 +57,10 @@ import qualified Data.IntSet as IntSet
57import qualified Data.Map as M
57import qualified Data.Map as M
58import qualified Data.Sequence as Seq
58import qualified Data.Sequence as Seq
59import qualified Data.Set as Set
59import qualified Data.Set as Set
60+import qualified Data.Text.Lazy as LT
61+import qualified Data.Text.Lazy.Builder as TLB
62+import qualified Data.Text.Lazy.Encoding as LT
63+import qualified Data.Text.Lazy.Encoding as TLE
60import qualified Data.Tree as Tree
64import qualified Data.Tree as Tree
61import qualified Data.Vector as Vector
65import qualified Data.Vector as Vector
62
66
tests/UnitTests/NullaryConstructors.hs+1−1
@@ -10,7 +10,7 @@ import Data.Aeson.Types (Parser)
10import Data.ByteString.Builder (toLazyByteString)
10import Data.ByteString.Builder (toLazyByteString)
11import Data.Maybe (fromJust)
11import Data.Maybe (fromJust)
12import Encoders
12import Encoders
13−import Test.HUnit (Assertion, (@=?))
13+import Test.HUnit ((@=?), Assertion)
14import Types
14import Types
15import qualified Data.ByteString.Lazy.Char8 as L
15import qualified Data.ByteString.Lazy.Char8 as L
16
16