Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

this brings the package up to the GHC 8.4 level #24

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 27 additions & 20 deletions Data/Text/Buildable.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
{-# LANGUAGE CPP, FlexibleInstances, OverloadedStrings #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}

-- |
-- Module : Data.Text.Buildable
Expand All @@ -17,26 +19,31 @@ module Data.Text.Buildable
) where

#if MIN_VERSION_base(4,8,0)
import Data.Void (Void, absurd)
import Data.Void (Void, absurd)
#endif

import Data.Monoid (mempty)
import Data.Int (Int8, Int16, Int32, Int64)
import Data.Fixed (Fixed, HasResolution, showFixed)
import Data.Ratio (Ratio, denominator, numerator)
import Data.Text.Format.Functions ((<>))
import Data.Text.Format.Int (decimal, hexadecimal)
import Data.Text.Format.Types (Hex(..), Shown(..))
import Data.Text.Lazy.Builder
import Data.Time.Calendar (Day, showGregorian)
import Data.Time.Clock (DiffTime, NominalDiffTime, UTCTime, UniversalTime)
import Data.Time.Clock (getModJulianDate)
import Data.Time.LocalTime (LocalTime, TimeOfDay, TimeZone, ZonedTime)
import Data.Word (Word, Word8, Word16, Word32, Word64)
import Foreign.Ptr (IntPtr, WordPtr, Ptr, ptrToWordPtr)
import qualified Data.Double.Conversion.Text as C
import qualified Data.Text as ST
import qualified Data.Text.Lazy as LT
import Data.Fixed (Fixed, HasResolution, showFixed)
import Data.Int (Int16, Int32, Int64, Int8)
import Data.Monoid (mempty)
import Data.Ratio (Ratio, denominator, numerator)
import qualified Data.Text as ST
import Data.Text.Format.Functions ((<>))
import Data.Text.Format.Int (decimal, hexadecimal)
import Data.Text.Format.Types (Hex (..), Shown (..))
import qualified Data.Text.Lazy as LT
import Data.Text.Lazy.Builder
import Data.Time.Calendar (Day, showGregorian)
import Data.Time.Clock (DiffTime, NominalDiffTime,
UTCTime, UniversalTime)
import Data.Time.Clock (getModJulianDate)
import Data.Time.LocalTime (LocalTime, TimeOfDay, TimeZone,
ZonedTime)
import Data.Word (Word, Word16, Word32, Word64,
Word8)
import Foreign.Ptr (IntPtr, Ptr, WordPtr,
ptrToWordPtr)
import Prelude hiding ((<>))

-- | The class of types that can be rendered to a 'Builder'.
class Buildable p where
Expand Down Expand Up @@ -155,7 +162,7 @@ instance (Show a) => Buildable (Shown a) where
{-# INLINE build #-}

instance (Buildable a) => Buildable (Maybe a) where
build Nothing = mempty
build Nothing = mempty
build (Just v) = build v
{-# INLINE build #-}

Expand Down Expand Up @@ -185,5 +192,5 @@ instance Buildable (Ptr a) where
build = build . ptrToWordPtr

instance Buildable Bool where
build True = fromText "True"
build True = fromText "True"
build False = fromText "False"
30 changes: 16 additions & 14 deletions Data/Text/Format.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{-# LANGUAGE OverloadedStrings, RelaxedPolyRec #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RelaxedPolyRec #-}

-- |
-- Module : Data.Text.Format
Expand Down Expand Up @@ -35,19 +36,20 @@ module Data.Text.Format
, shortest
) where

import Control.Monad.IO.Class (MonadIO(liftIO))
import Data.Text.Format.Functions ((<>))
import Data.Text.Format.Params (Params(..))
import Data.Text.Format.Types.Internal (Format(..), Only(..), Shown(..))
import Data.Text.Format.Types.Internal (Hex(..))
import Data.Text.Lazy.Builder
import Prelude hiding (exp, print)
import System.IO (Handle)
import qualified Data.Double.Conversion.Text as C
import qualified Data.Text as ST
import qualified Data.Text.Buildable as B
import qualified Data.Text.Lazy as LT
import qualified Data.Text.Lazy.IO as LT
import Control.Monad.IO.Class (MonadIO (liftIO))
import qualified Data.Double.Conversion.Text as C
import qualified Data.Text as ST
import qualified Data.Text.Buildable as B
import Data.Text.Format.Functions ((<>))
import Data.Text.Format.Params (Params (..))
import Data.Text.Format.Types.Internal (Format (..), Only (..),
Shown (..))
import Data.Text.Format.Types.Internal (Hex (..))
import qualified Data.Text.Lazy as LT
import Data.Text.Lazy.Builder
import qualified Data.Text.Lazy.IO as LT
import Prelude hiding (exp, print, (<>))
import System.IO (Handle)

-- Format strings are almost always constants, and they're expensive
-- to interpret (which we refer to as "cracking" here). We'd really
Expand Down
7 changes: 4 additions & 3 deletions Data/Text/Format/Functions.hs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ module Data.Text.Format.Functions
, i2d
) where

import Data.Monoid (mappend)
import Data.Text.Lazy.Builder (Builder)
import GHC.Base
import Data.Monoid (mappend)
import Data.Text.Lazy.Builder (Builder)
import GHC.Base hiding ((<>))
import Prelude hiding ((<>))

-- | Unsafe conversion for decimal digits.
{-# INLINE i2d #-}
Expand Down
27 changes: 16 additions & 11 deletions Data/Text/Format/Int.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{-# LANGUAGE BangPatterns, CPP, MagicHash, UnboxedTuples #-}
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE UnboxedTuples #-}

-- Module: Data.Text.Format.Int
-- Copyright: (c) 2011 MailRank, Inc.
Expand All @@ -16,20 +19,22 @@ module Data.Text.Format.Int
, minus
) where

import Data.Int (Int8, Int16, Int32, Int64)
import Data.Monoid (mempty)
import Data.Text.Format.Functions ((<>), i2d)
import Data.Text.Lazy.Builder
import Data.Word (Word, Word8, Word16, Word32, Word64)
import GHC.Base (quotInt, remInt)
import GHC.Num (quotRemInteger)
import GHC.Types (Int(..))
import Data.Int (Int16, Int32, Int64, Int8)
import Data.Monoid (mempty)
import Data.Text.Format.Functions (i2d, (<>))
import Data.Text.Lazy.Builder
import Data.Word (Word, Word16, Word32, Word64,
Word8)
import GHC.Base (quotInt, remInt)
import GHC.Num (quotRemInteger)
import GHC.Types (Int (..))
import Prelude hiding ((<>))

#ifdef __GLASGOW_HASKELL__
# if __GLASGOW_HASKELL__ < 611
import GHC.Integer.Internals
import GHC.Integer.Internals
# else
import GHC.Integer.GMP.Internals
import GHC.Integer.GMP.Internals
# endif
#endif

Expand Down
6 changes: 3 additions & 3 deletions Data/Text/Format/Params.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ module Data.Text.Format.Params
Params(..)
) where

import Data.Text.Buildable
import Data.Text.Format.Types
import Data.Text.Lazy.Builder
import Data.Text.Buildable
import Data.Text.Format.Types
import Data.Text.Lazy.Builder

-- | The class of types that can be used as a collection of arguments
-- for formatting.
Expand Down
5 changes: 3 additions & 2 deletions Data/Text/Format/Types.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

-- |
-- Module : Data.Text.Format.Types
Expand All @@ -20,4 +21,4 @@ module Data.Text.Format.Types
, Hex(..)
) where

import Data.Text.Format.Types.Internal
import Data.Text.Format.Types.Internal
16 changes: 10 additions & 6 deletions Data/Text/Format/Types/Internal.hs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{-# LANGUAGE DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}

-- |
-- Module : Data.Text.Format.Types.Internal
Expand All @@ -20,10 +21,11 @@ module Data.Text.Format.Types.Internal
, Hex(..)
) where

import Data.Monoid (Monoid(..))
import Data.String (IsString(..))
import Data.Text (Text)
import Data.Typeable (Typeable)
import Data.Monoid (Monoid (..))
import Data.Semigroup (Semigroup (..))
import Data.String (IsString (..))
import Data.Text (Text)
import Data.Typeable (Typeable)

-- | A format string. This is intentionally incompatible with other
-- string types, to make it difficult to construct a format string by
Expand All @@ -46,8 +48,10 @@ import Data.Typeable (Typeable)
newtype Format = Format { fromFormat :: Text }
deriving (Eq, Ord, Typeable, Show)

instance Semigroup Format where
Format a <> Format b = Format (a <> b)

instance Monoid Format where
Format a `mappend` Format b = Format (a `mappend` b)
mempty = Format mempty

instance IsString Format where
Expand Down
4 changes: 3 additions & 1 deletion stack.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
resolver: lts-12.0

flags:
text-format:
developer: false
packages:
- '.'
extra-deps: []
resolver: lts-3.0