{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE OverloadedStrings #-}
module Distribution.Nixpkgs.Haskell.OrphanInstances ( ) where
import Control.DeepSeq
import Data.Maybe
import Data.String
import qualified Data.Text as T
import Data.Yaml
import Distribution.Compiler
import Distribution.Nixpkgs.Meta
import Distribution.Package
import Distribution.Parsec
import Distribution.System
import Distribution.Types.PackageVersionConstraint
import Distribution.Pretty as Cabal
import qualified Data.Version as Base
import Distribution.Version
import Language.Nix.PrettyPrinting as Nix
instance NFData CompilerInfo
instance NFData AbiTag
instance IsString Version where
fromString :: String -> Version
fromString = forall a. Parsec a => String -> String -> a
text2isString String
"Version"
instance IsString VersionRange where
fromString :: String -> VersionRange
fromString = forall a. Parsec a => String -> String -> a
text2isString String
"VersionRange"
instance IsString PackageIdentifier where
fromString :: String -> PackageIdentifier
fromString = forall a. Parsec a => String -> String -> a
text2isString String
"PackageIdentifier"
instance IsString PackageVersionConstraint where
fromString :: String -> PackageVersionConstraint
fromString = forall a. Parsec a => String -> String -> a
text2isString String
"PackageVersionConstraint"
instance IsString CompilerId where
fromString :: String -> CompilerId
fromString = forall a. Parsec a => String -> String -> a
text2isString String
"CompilerId"
instance FromJSON NixpkgsPlatform where
parseJSON :: Value -> Parser NixpkgsPlatform
parseJSON (String Text
s) =
case String -> Maybe NixpkgsPlatform
nixpkgsPlatformFromString (Text -> String
T.unpack Text
s) of
Just NixpkgsPlatform
p -> forall (f :: * -> *) a. Applicative f => a -> f a
pure NixpkgsPlatform
p
Maybe NixpkgsPlatform
Nothing -> forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Text
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid NixpkgsPlatform")
parseJSON Value
s =
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: expected String for NixpkgsPlatform, but got " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Value
s)
instance FromJSON PackageName where
parseJSON :: Value -> Parser PackageName
parseJSON (String Text
s) = forall (m :: * -> *) a. Monad m => a -> m a
return (forall a. IsString a => String -> a
fromString (Text -> String
T.unpack Text
s))
parseJSON Value
s = forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Value
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid Haskell package name")
instance FromJSON PackageIdentifier where
parseJSON :: Value -> Parser PackageIdentifier
parseJSON (String Text
s) = forall (m :: * -> *) a. Monad m => a -> m a
return (forall a. IsString a => String -> a
fromString (Text -> String
T.unpack Text
s))
parseJSON Value
s = forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Value
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid Haskell package identifier")
instance FromJSON VersionRange where
parseJSON :: Value -> Parser VersionRange
parseJSON (String Text
s) = forall (m :: * -> *) a. Monad m => a -> m a
return (forall a. IsString a => String -> a
fromString (Text -> String
T.unpack Text
s))
parseJSON Value
s = forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Value
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid Cabal VersionRange")
instance FromJSON PackageVersionConstraint where
parseJSON :: Value -> Parser PackageVersionConstraint
parseJSON (String Text
s) = forall (m :: * -> *) a. Monad m => a -> m a
return (forall a. IsString a => String -> a
fromString (Text -> String
T.unpack Text
s))
parseJSON Value
s = forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Value
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid Haskell PackageVersionConstraint")
instance FromJSON CompilerInfo where
parseJSON :: Value -> Parser CompilerInfo
parseJSON (String Text
s) = forall (m :: * -> *) a. Monad m => a -> m a
return (CompilerId -> AbiTag -> CompilerInfo
unknownCompilerInfo (forall a. IsString a => String -> a
fromString (Text -> String
T.unpack Text
s)) AbiTag
NoAbiTag)
parseJSON Value
s = forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String
"parseJSON: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Value
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid Haskell compiler")
instance Nix.Pretty Version where
pPrint :: Version -> Doc
pPrint = forall a. Pretty a => a -> Doc
pretty
instance Nix.Pretty PackageName where
pPrint :: PackageName -> Doc
pPrint = forall a. Pretty a => a -> Doc
pretty
instance Nix.Pretty PackageIdentifier where
pPrint :: PackageIdentifier -> Doc
pPrint = forall a. Pretty a => a -> Doc
pretty
instance Nix.Pretty CompilerId where
pPrint :: CompilerId -> Doc
pPrint = forall a. Pretty a => a -> Doc
pretty
instance Nix.Pretty Platform where
pPrint :: Platform -> Doc
pPrint = forall a. Pretty a => a -> Doc
pretty
instance Nix.Pretty Base.Version where
pPrint :: Version -> Doc
pPrint = String -> Doc
text forall b c a. (b -> c) -> (a -> b) -> a -> c
. Version -> String
Base.showVersion
text2isString :: Parsec a => String -> String -> a
text2isString :: forall a. Parsec a => String -> String -> a
text2isString String
t String
s = forall a. a -> Maybe a -> a
fromMaybe (forall a. HasCallStack => String -> a
error (String
"fromString: " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show String
s forall a. [a] -> [a] -> [a]
++ String
" is not a valid " forall a. [a] -> [a] -> [a]
++ String
t)) (forall a. Parsec a => String -> Maybe a
simpleParsec String
s)