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.Package
import Distribution.PackageDescription
import Distribution.System
import Distribution.Text
import Distribution.Types.CondTree
import Distribution.Types.ExecutableScope
import Distribution.Types.ForeignLib
import Distribution.Types.ForeignLibOption
import Distribution.Types.ForeignLibType
import Distribution.Types.IncludeRenaming
import Distribution.Types.Mixin
import Distribution.Version
import Language.Haskell.Extension
instance NFData SetupBuildInfo
instance (NFData v, NFData c, NFData a) => NFData (CondTree v c a)
instance (NFData v, NFData c, NFData a) => NFData (CondBranch v c a)
instance NFData Arch
instance NFData Benchmark
instance NFData BenchmarkInterface
instance NFData BenchmarkType
instance NFData BuildInfo
instance NFData BuildType
instance NFData LibVersionInfo
instance NFData CompilerFlavor
instance NFData ConfVar
instance NFData ExecutableScope
instance NFData IncludeRenaming
instance NFData ForeignLibType
instance NFData ForeignLibOption
instance NFData Executable
instance NFData Extension
instance NFData Flag
instance NFData Mixin
instance NFData FlagName
instance NFData GenericPackageDescription
instance NFData KnownExtension
instance NFData Language
instance NFData Library
instance NFData ForeignLib
instance NFData License
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 a => NFData (Condition a)
instance NFData Platform
instance NFData CompilerInfo
instance NFData CompilerId
instance NFData AbiTag
instance IsString Version where
fromString = text2isString "Version"
instance IsString VersionRange where
fromString = text2isString "VersionRange"
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)