git.iko.soy/typeable/cabal2nix
on master help sign in
Add OrphanInstances module for Cabal related types.
7de81dePeter Simons
src/Distribution/Nixpkgs/Haskell.hs+6−7
@@ -1,6 +1,6 @@
1+{-# LANGUAGE DeriveGeneric #-}
2+{-# LANGUAGE RecordWildCards #-}
1{-# LANGUAGE TemplateHaskell #-}
3{-# LANGUAGE TemplateHaskell #-}
2−{-# LANGUAGE RecordWildCards, DeriveGeneric #-}
3−{-# OPTIONS_GHC -fno-warn-orphans #-} -- for FlagName below
4
4
5module Distribution.Nixpkgs.Haskell
5module Distribution.Nixpkgs.Haskell
6 ( Derivation, nullDerivation, pkgid, revision, src, isLibrary, isExecutable
6 ( Derivation, nullDerivation, pkgid, revision, src, isLibrary, isExecutable
@@ -14,17 +14,18 @@ module Distribution.Nixpkgs.Haskell
14
14
15import Control.DeepSeq.Generics
15import Control.DeepSeq.Generics
16import Control.Lens
16import Control.Lens
17+import Data.List
17import Data.Set ( Set )
18import Data.Set ( Set )
18import qualified Data.Set as Set
19import qualified Data.Set as Set
19import Data.Set.Lens
20import Data.Set.Lens
20−import Data.List
21−import Language.Nix.Identifier
22−import Distribution.Nixpkgs.Meta
23import Distribution.Nixpkgs.Fetch
21import Distribution.Nixpkgs.Fetch
22+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
23+import Distribution.Nixpkgs.Meta
24import Distribution.Nixpkgs.Util.PrettyPrinting
24import Distribution.Nixpkgs.Util.PrettyPrinting
25import Distribution.Package
25import Distribution.Package
26import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
26import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
27import GHC.Generics ( Generic )
27import GHC.Generics ( Generic )
28+import Language.Nix.Identifier
28
29
29data BuildInfo = BuildInfo
30data BuildInfo = BuildInfo
30 { _haskell :: Set Identifier
31 { _haskell :: Set Identifier
@@ -107,8 +108,6 @@ instance NFData BuildInfo where rnf = genericRnf
107
108
108instance NFData Derivation where rnf = genericRnf
109instance NFData Derivation where rnf = genericRnf
109
110
110−instance NFData FlagName where rnf = genericRnf
111−
112instance Pretty Derivation where
111instance Pretty Derivation where
113 pPrint drv@(MkDerivation {..}) = funargs (map text ("mkDerivation" : toAscList inputs)) $$ vcat
112 pPrint drv@(MkDerivation {..}) = funargs (map text ("mkDerivation" : toAscList inputs)) $$ vcat
114 [ text "mkDerivation" <+> lbrace
113 [ text "mkDerivation" <+> lbrace
src/Distribution/Nixpkgs/Haskell/OrphanInstances.hsnew file+55
@@ -0,0 +1,55 @@
1+{-# LANGUAGE DeriveGeneric #-}
2+{-# LANGUAGE StandaloneDeriving #-}
3+{-# OPTIONS_GHC -fno-warn-orphans #-}
4+
5+module Distribution.Nixpkgs.Haskell.OrphanInstances ( ) where
6+
7+import Control.DeepSeq.Generics
8+import Distribution.Compiler
9+import Distribution.License
10+import Distribution.ModuleName hiding ( main )
11+import Distribution.Package
12+import Distribution.PackageDescription
13+import Distribution.System
14+import Distribution.Version
15+import GHC.Generics ( Generic )
16+import Language.Haskell.Extension
17+
18+deriving instance Generic (CondTree v c a)
19+deriving instance Generic (Condition a)
20+deriving instance Generic ConfVar
21+deriving instance Generic Flag
22+deriving instance Generic GenericPackageDescription
23+
24+instance (NFData v, NFData c, NFData a) => NFData (CondTree v c a) where rnf = genericRnf
25+instance NFData Arch where rnf = genericRnf
26+instance NFData Benchmark where rnf = genericRnf
27+instance NFData BenchmarkInterface where rnf = genericRnf
28+instance NFData BenchmarkType where rnf = genericRnf
29+instance NFData BuildInfo where rnf = genericRnf
30+instance NFData BuildType where rnf = genericRnf
31+instance NFData CompilerFlavor where rnf = genericRnf
32+instance NFData ConfVar where rnf = genericRnf
33+instance NFData Dependency where rnf = genericRnf
34+instance NFData Executable where rnf = genericRnf
35+instance NFData Extension where rnf = genericRnf
36+instance NFData Flag where rnf = genericRnf
37+instance NFData FlagName where rnf = genericRnf
38+instance NFData GenericPackageDescription where rnf = genericRnf
39+instance NFData KnownExtension where rnf = genericRnf
40+instance NFData Language where rnf = genericRnf
41+instance NFData Library where rnf = genericRnf
42+instance NFData License where rnf = genericRnf
43+instance NFData ModuleName where rnf = genericRnf
44+instance NFData ModuleReexport where rnf = genericRnf
45+instance NFData ModuleRenaming where rnf = genericRnf
46+instance NFData OS where rnf = genericRnf
47+instance NFData PackageDescription where rnf = genericRnf
48+instance NFData RepoKind where rnf = genericRnf
49+instance NFData RepoType where rnf = genericRnf
50+instance NFData SourceRepo where rnf = genericRnf
51+instance NFData TestSuite where rnf = genericRnf
52+instance NFData TestSuiteInterface where rnf = genericRnf
53+instance NFData TestType where rnf = genericRnf
54+instance NFData VersionRange where rnf = genericRnf
55+instance NFData a => NFData (Condition a) where rnf = genericRnf