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.License
import Distribution.ModuleName hiding ( main, fromString )
import Distribution.Package
import Distribution.PackageDescription
import Distribution.System
import Distribution.Text
import Distribution.Version
import Language.Haskell.Extension
#if !MIN_VERSION_Cabal(1,23,0)
import GHC.Generics ( Generic )
deriving instance Generic (CondTree v c a)
deriving instance Generic (Condition a)
deriving instance Generic ConfVar
deriving instance Generic Flag
deriving instance Generic GenericPackageDescription
#else
instance NFData SetupBuildInfo
#endif
instance (NFData v, NFData c, NFData a) => NFData (CondTree v c a)
instance NFData Arch
instance NFData Benchmark
instance NFData BenchmarkInterface
instance NFData BenchmarkType
instance NFData BuildInfo
instance NFData BuildType
instance NFData CompilerFlavor
instance NFData ConfVar
instance NFData Dependency
instance NFData Executable
instance NFData Extension
instance NFData Flag
instance NFData FlagName
instance NFData GenericPackageDescription
instance NFData KnownExtension
instance NFData Language
instance NFData Library
instance NFData License
instance NFData ModuleName
instance NFData ModuleReexport
instance NFData ModuleRenaming
instance NFData OS
instance NFData PackageDescription
instance NFData RepoKind
instance NFData RepoType
instance NFData SourceRepo
instance NFData TestSuite
instance NFData TestSuiteInterface
instance NFData TestType
instance NFData VersionRange
instance NFData a => NFData (Condition a)
instance NFData Platform
instance NFData CompilerInfo
instance NFData CompilerId
instance NFData AbiTag
instance IsString PackageName where
fromString = text2isString "PackageName"
instance IsString Version where
fromString = text2isString "Version"
instance IsString PackageIdentifier where
fromString = text2isString "PackageIdentifier"
instance IsString Dependency where
fromString = text2isString "Dependency"
instance IsString CompilerId where
fromString = text2isString "CompilerId"
instance IsString Platform where
fromString "i686-linux" = Platform I386 Linux
fromString "x86_64-linux" = Platform X86_64 Linux
fromString "x86_64-darwin" = Platform X86_64 OSX
fromString s = error ("fromString: " ++ show s ++ " is not a valid platform")
instance FromJSON Platform where
parseJSON (String s) = pure (fromString (T.unpack s))
parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid platform")
instance FromJSON PackageName where
parseJSON (String s) = return (fromString (T.unpack s))
parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell package name")
instance FromJSON PackageIdentifier where
parseJSON (String s) = return (fromString (T.unpack s))
parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell package identifier")
instance FromJSON Dependency where
parseJSON (String s) = return (fromString (T.unpack s))
parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell Dependency")
instance FromJSON CompilerInfo where
parseJSON (String s) = return (unknownCompilerInfo (fromString (T.unpack s)) NoAbiTag)
parseJSON s = fail ("parseJSON: " ++ show s ++ " is not a valid Haskell compiler")
text2isString :: Text a => String -> String -> a
text2isString t s = fromMaybe (error ("fromString: " ++ show s ++ " is not a valid " ++ t)) (simpleParse s)