diff options
| author | Ben Gamari <ben@smart-cactus.org> | 2021-01-05 15:54:42 -0500 | 
|---|---|---|
| committer | Ben Gamari <ben@smart-cactus.org> | 2021-01-05 16:14:31 -0500 | 
| commit | 1e56f63c3197e7ca1c1e506e083c2bad25d08793 (patch) | |
| tree | 7152e5a53fe1c18e6fd5044d5aa3168ab99c3cc6 /haddock-library/src/CompatPrelude.hs | |
| parent | 1d657cf377b5f147b08aafb3ab3a5d11be538331 (diff) | |
| parent | 665226f384ee9b0a66a98638ede9eff845f6c45b (diff) | |
Merge remote-tracking branch 'origin/ghc-8.10' into ghc-9.0
Diffstat (limited to 'haddock-library/src/CompatPrelude.hs')
| -rw-r--r-- | haddock-library/src/CompatPrelude.hs | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/haddock-library/src/CompatPrelude.hs b/haddock-library/src/CompatPrelude.hs new file mode 100644 index 00000000..60fa94d9 --- /dev/null +++ b/haddock-library/src/CompatPrelude.hs @@ -0,0 +1,52 @@ +{-# LANGUAGE CPP #-} + +#if !MIN_VERSION_base(4,5,0) +# error This module doesn't provide compat-shims for versions prior to base-4.5 +#endif + +-- | Bridge impedance mismatch of different @base@ versions back till @base-4.5@ (GHC 7.4.2) +module CompatPrelude +    ( ($>) +    , isSymbolChar +    ) where + +#if MIN_VERSION_base(4,7,0) +import           Data.Functor                ( ($>) ) +#else +import           Data.Functor                ( (<$) ) +#endif + +#if MIN_VERSION_base(4,9,0) +import           Text.Read.Lex                      (isSymbolChar) +#else +import           Data.Char (GeneralCategory(..), generalCategory) +#endif + + +#if !MIN_VERSION_base(4,7,0) +infixl 4 $> + +-- | Flipped version of '<$'. +-- +-- @since 4.7.0.0 +($>) :: Functor f => f a -> b -> f b +($>) = flip (<$) +#endif + +#if !MIN_VERSION_base(4,9,0) +-- inlined from base-4.10.0.0 +isSymbolChar :: Char -> Bool +isSymbolChar c = not (isPuncChar c) && case generalCategory c of +    MathSymbol           -> True +    CurrencySymbol       -> True +    ModifierSymbol       -> True +    OtherSymbol          -> True +    DashPunctuation      -> True +    OtherPunctuation     -> c `notElem` "'\"" +    ConnectorPunctuation -> c /= '_' +    _                    -> False +  where +    -- | The @special@ character class as defined in the Haskell Report. +    isPuncChar :: Char -> Bool +    isPuncChar = (`elem` (",;()[]{}`" :: String)) +#endif | 
