git.iko.soy/typeable/cabal2nix
on master help sign in
Re-factor hackage2nix into library code.

This patch changes the definition of the BuildInfo type to store its contents as "Bindings" rather than "Identifiers". This means that every "Derivation" contains all its dependencies as well as the actual Nix paths that these dependencies bind to. Missing dependencies bind to "null".

commit32956d6f96987c8a2bc9babf59feac65410ac8a7 authorPeter Simons <simons@cryp.to> dateSat 22 Aug 2015, 20:34 (11 years ago) parent6642731
15 files changed+4097−4055
src/Distribution/Nixpkgs/Haskell.hs+4−162 src/Distribution/Nixpkgs/Haskell/BuildInfo.hs+45 src/Distribution/Nixpkgs/Haskell/Constraint.hs+14 src/Distribution/Nixpkgs/Haskell/Derivation.hs+139 src/Distribution/Nixpkgs/Haskell/FromCabal.hs+81−62 src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hs+46 src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration/GHC7102.hs+3679 src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs+5−5 src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs+6−5 src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs+1 src/Distribution/Nixpkgs/PackageMap.hs+21−7 src/Language/Nix/Binding.hs+11−2 src/Language/Nix/Path.hs+7−1 src/cabal2nix.hs+11−2 src/hackage2nix.hs+27−3809
src/Distribution/Nixpkgs/Haskell.hs+4−162
@@ -1,166 +1,8 @@
1−{-# LANGUAGE DeriveGeneric #-}
2−{-# LANGUAGE RecordWildCards #-}
3−{-# LANGUAGE TemplateHaskell #-}
4−{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
5−
61module Distribution.Nixpkgs.Haskell
7− ( Derivation, pkgid, revision, src, isLibrary, isExecutable
8− , extraFunctionArgs, libraryDepends, executableDepends, testDepends, configureFlags
9− , cabalFlags, runHaddock, jailbreak, doCheck, testTarget, hyperlinkSource, enableSplitObjs
10− , phaseOverrides, editedCabalFile, metaSection
11− , BuildInfo, haskell, pkgconfig, system, tool
12− , dependencies
2+ ( module Distribution.Nixpkgs.Haskell.BuildInfo
3+ , module Distribution.Nixpkgs.Haskell.Derivation
134 )
145 where
156
16−import Control.DeepSeq.Generics
17−import Data.List
18−import Data.Set ( Set )
19−import qualified Data.Set as Set
20−import Data.Set.Lens
21−import Distribution.Nixpkgs.Fetch
22−import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
23−import Distribution.Nixpkgs.Meta
24−import Distribution.Package
25−import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
26−import GHC.Generics ( Generic )
27−import Internal.Lens
28−import Internal.PrettyPrinting
29−import Language.Nix.Identifier
30−
31−data BuildInfo = BuildInfo
32− { _haskell :: Set Identifier
33− , _pkgconfig :: Set Identifier
34− , _system :: Set Identifier
35− , _tool :: Set Identifier
36− }
37− deriving (Show, Eq, Generic)
38−
39−makeLenses ''BuildInfo
40−
41−instance Each BuildInfo BuildInfo (Set Identifier) (Set Identifier) where
42− each f (BuildInfo a b c d) = BuildInfo <$> f a <*> f b <*> f c <*> f d
43−
44−instance Monoid BuildInfo where
45− mempty = BuildInfo mempty mempty mempty mempty
46− BuildInfo w1 x1 y1 z1 `mappend` BuildInfo w2 x2 y2 z2 = BuildInfo (w1 `mappend` w2) (x1 `mappend` x2) (y1 `mappend` y2) (z1 `mappend` z2)
47−
48−-- | A represtation of Nix expressions for building Haskell packages.
49−-- The data type correspond closely to the definition of
50−-- 'PackageDescription' from Cabal.
51−
52−data Derivation = MkDerivation
53− { _pkgid :: PackageIdentifier
54− , _revision :: Int
55− , _src :: DerivationSource
56− , _isLibrary :: Bool
57− , _isExecutable :: Bool
58− , _extraFunctionArgs :: Set Identifier
59− , _libraryDepends :: BuildInfo
60− , _executableDepends :: BuildInfo
61− , _testDepends :: BuildInfo
62− , _configureFlags :: Set String
63− , _cabalFlags :: FlagAssignment
64− , _runHaddock :: Bool
65− , _jailbreak :: Bool
66− , _doCheck :: Bool
67− , _testTarget :: String
68− , _hyperlinkSource :: Bool
69− , _enableSplitObjs :: Bool
70− , _phaseOverrides :: String
71− , _editedCabalFile :: String
72− , _metaSection :: Meta
73− }
74− deriving (Show, Eq, Generic)
75−
76−instance Default Derivation where
77− def = MkDerivation
78− { _pkgid = error "undefined Derivation.pkgid"
79− , _revision = error "undefined Derivation.revision"
80− , _src = error "undefined Derivation.src"
81− , _isLibrary = error "undefined Derivation.isLibrary"
82− , _isExecutable = error "undefined Derivation.isExecutable"
83− , _extraFunctionArgs = error "undefined Derivation.extraFunctionArgs"
84− , _libraryDepends = error "undefined Derivation.libraryDepends"
85− , _executableDepends = error "undefined Derivation.executableDepends"
86− , _testDepends = error "undefined Derivation.testDepends"
87− , _configureFlags = error "undefined Derivation.configureFlags"
88− , _cabalFlags = error "undefined Derivation.cabalFlags"
89− , _runHaddock = error "undefined Derivation.runHaddock"
90− , _jailbreak = error "undefined Derivation.jailbreak"
91− , _doCheck = error "undefined Derivation.doCheck"
92− , _testTarget = error "undefined Derivation.testTarget"
93− , _hyperlinkSource = error "undefined Derivation.hyperlinkSource"
94− , _enableSplitObjs = error "undefined Derivation.enableSplitObjs"
95− , _phaseOverrides = error "undefined Derivation.phaseOverrides"
96− , _editedCabalFile = error "undefined Derivation.editedCabalFile"
97− , _metaSection = error "undefined Derivation.metaSection"
98− }
99−
100−makeLenses ''Derivation
101−
102−makeLensesFor [("_libraryDepends", "dependencies"), ("_executableDepends", "dependencies"), ("_testDepends", "dependencies")] ''Derivation
103−
104−instance Package Derivation where
105− packageId = view pkgid
106−
107−instance NFData BuildInfo where rnf = genericRnf
108−
109−instance NFData Derivation where rnf = genericRnf
110−
111−instance Pretty Derivation where
112− pPrint drv@(MkDerivation {..}) = funargs (map text ("mkDerivation" : toAscList inputs)) $$ vcat
113− [ text "mkDerivation" <+> lbrace
114− , nest 2 $ vcat
115− [ attr "pname" $ doubleQuotes $ disp (packageName _pkgid)
116− , attr "version" $ doubleQuotes $ disp (packageVersion _pkgid)
117− , sourceAttr _src
118− , onlyIf (_revision > 0) $ attr "revision" $ doubleQuotes $ int _revision
119− , onlyIf (not (null _editedCabalFile)) $ attr "editedCabalFile" $ string _editedCabalFile
120− , listattr "configureFlags" empty (map (show . show) renderedFlags)
121− , boolattr "isLibrary" (not _isLibrary || _isExecutable) _isLibrary
122− , boolattr "isExecutable" (not _isLibrary || _isExecutable) _isExecutable
123− , onlyIf (_libraryDepends /= mempty) $ pPrintBuildInfo "library" _libraryDepends
124− , onlyIf (_executableDepends /= mempty) $ pPrintBuildInfo "executable" _executableDepends
125− , onlyIf (_testDepends /= mempty) $ pPrintBuildInfo "test" _testDepends
126− , boolattr "enableSplitObjs" (not _enableSplitObjs) _enableSplitObjs
127− , boolattr "doHaddock" (not _runHaddock) _runHaddock
128− , boolattr "jailbreak" _jailbreak _jailbreak
129− , boolattr "doCheck" (not _doCheck) _doCheck
130− , onlyIf (not (null _testTarget)) $ attr "testTarget" $ string _testTarget
131− , boolattr "hyperlinkSource" (not _hyperlinkSource) _hyperlinkSource
132− , onlyIf (not (null _phaseOverrides)) $ vcat ((map text . lines) _phaseOverrides)
133− , pPrint _metaSection
134− ]
135− , rbrace
136− ]
137− where
138− inputs :: Set String
139− inputs = Set.unions [ Set.map (view ident) _extraFunctionArgs
140− , setOf (dependencies . each . folded . ident) drv
141− , Set.fromList ["fetch" ++ derivKind _src | derivKind _src /= "" && not isHackagePackage]
142− ]
143−
144− renderedFlags = [ text "-f" <> (if enable then empty else char '-') <> text f | (FlagName f, enable) <- _cabalFlags ]
145− ++ map text (toAscList _configureFlags)
146− isHackagePackage = "mirror://hackage/" `isPrefixOf` derivUrl _src
147− sourceAttr (DerivationSource{..})
148− | isHackagePackage = attr "sha256" $ string derivHash
149− | derivKind /= "" = vcat
150− [ text "src" <+> equals <+> text ("fetch" ++ derivKind) <+> lbrace
151− , nest 2 $ vcat
152− [ attr "url" $ string derivUrl
153− , attr "sha256" $ string derivHash
154− , if derivRevision /= "" then attr "rev" (string derivRevision) else empty
155− ]
156− , rbrace <> semi
157− ]
158− | otherwise = attr "src" $ text derivUrl
159−
160−pPrintBuildInfo :: String -> BuildInfo -> Doc
161−pPrintBuildInfo prefix bi = vcat
162− [ setattr (prefix++"HaskellDepends") (setOf (haskell.folded.ident) bi)
163− , setattr (prefix++"SystemDepends") (setOf (system.folded.ident) bi)
164− , setattr (prefix++"PkgconfigDepends") (setOf (pkgconfig.folded.ident) bi)
165− , setattr (prefix++"ToolDepends") (setOf (tool.folded.ident) bi)
166− ]
7+import Distribution.Nixpkgs.Haskell.BuildInfo
8+import Distribution.Nixpkgs.Haskell.Derivation
src/Distribution/Nixpkgs/Haskell/BuildInfo.hsnew file+45
@@ -0,0 +1,45 @@
1+{-# LANGUAGE DeriveGeneric #-}
2+{-# LANGUAGE FlexibleInstances #-}
3+{-# LANGUAGE MultiParamTypeClasses #-}
4+{-# LANGUAGE TemplateHaskell #-}
5+
6+module Distribution.Nixpkgs.Haskell.BuildInfo
7+ ( BuildInfo
8+ , haskell, pkgconfig, system, tool, pPrintBuildInfo
9+ )
10+ where
11+
12+import Control.DeepSeq.Generics
13+import Data.Set ( Set )
14+import Data.Set.Lens
15+import GHC.Generics ( Generic )
16+import Internal.Lens
17+import Internal.PrettyPrinting
18+import Language.Nix
19+
20+data BuildInfo = BuildInfo
21+ { _haskell :: Set Binding
22+ , _pkgconfig :: Set Binding
23+ , _system :: Set Binding
24+ , _tool :: Set Binding
25+ }
26+ deriving (Show, Eq, Generic)
27+
28+makeLenses ''BuildInfo
29+
30+instance Each BuildInfo BuildInfo (Set Binding) (Set Binding) where
31+ each f (BuildInfo a b c d) = BuildInfo <$> f a <*> f b <*> f c <*> f d
32+
33+instance Monoid BuildInfo where
34+ mempty = BuildInfo mempty mempty mempty mempty
35+ BuildInfo w1 x1 y1 z1 `mappend` BuildInfo w2 x2 y2 z2 = BuildInfo (w1 `mappend` w2) (x1 `mappend` x2) (y1 `mappend` y2) (z1 `mappend` z2)
36+
37+instance NFData BuildInfo where rnf = genericRnf
38+
39+pPrintBuildInfo :: String -> BuildInfo -> Doc
40+pPrintBuildInfo prefix bi = vcat
41+ [ setattr (prefix++"HaskellDepends") (setOf (haskell.folded.localName.ident) bi)
42+ , setattr (prefix++"SystemDepends") (setOf (system.folded.localName.ident) bi)
43+ , setattr (prefix++"PkgconfigDepends") (setOf (pkgconfig.folded.localName.ident) bi)
44+ , setattr (prefix++"ToolDepends") (setOf (tool.folded.localName.ident) bi)
45+ ]
src/Distribution/Nixpkgs/Haskell/Constraint.hsnew file+14
@@ -0,0 +1,14 @@
1+module Distribution.Nixpkgs.Haskell.Constraint
2+ ( Constraint, satisfiesConstraint, satisfiesConstraints
3+ ) where
4+
5+import Distribution.Package
6+import Distribution.Version
7+
8+type Constraint = Dependency
9+
10+satisfiesConstraint :: PackageIdentifier -> Constraint -> Bool
11+satisfiesConstraint (PackageIdentifier pn v) (Dependency cn vr) = (pn /= cn) || (v `withinRange` vr)
12+
13+satisfiesConstraints :: PackageIdentifier -> [Constraint] -> Bool
14+satisfiesConstraints p = all (satisfiesConstraint p)
src/Distribution/Nixpkgs/Haskell/Derivation.hsnew file+139
@@ -0,0 +1,139 @@
1+{-# LANGUAGE DeriveGeneric #-}
2+{-# LANGUAGE RecordWildCards #-}
3+{-# LANGUAGE TemplateHaskell #-}
4+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses #-}
5+
6+module Distribution.Nixpkgs.Haskell.Derivation
7+ ( Derivation, pkgid, revision, src, isLibrary, isExecutable
8+ , extraFunctionArgs, libraryDepends, executableDepends, testDepends, configureFlags
9+ , cabalFlags, runHaddock, jailbreak, doCheck, testTarget, hyperlinkSource, enableSplitObjs
10+ , phaseOverrides, editedCabalFile, metaSection
11+ , dependencies
12+ )
13+ where
14+
15+import Control.DeepSeq.Generics
16+import Data.List
17+import Data.Set ( Set )
18+import qualified Data.Set as Set
19+import Data.Set.Lens
20+import Distribution.Nixpkgs.Fetch
21+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
22+import Distribution.Nixpkgs.Meta
23+import Distribution.Nixpkgs.Haskell.BuildInfo
24+import Distribution.Package
25+import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
26+import GHC.Generics ( Generic )
27+import Internal.Lens
28+import Internal.PrettyPrinting
29+import Language.Nix
30+
31+-- | A represtation of Nix expressions for building Haskell packages.
32+-- The data type correspond closely to the definition of
33+-- 'PackageDescription' from Cabal.
34+
35+data Derivation = MkDerivation
36+ { _pkgid :: PackageIdentifier
37+ , _revision :: Int
38+ , _src :: DerivationSource
39+ , _isLibrary :: Bool
40+ , _isExecutable :: Bool
41+ , _extraFunctionArgs :: Set Identifier
42+ , _libraryDepends :: BuildInfo
43+ , _executableDepends :: BuildInfo
44+ , _testDepends :: BuildInfo
45+ , _configureFlags :: Set String
46+ , _cabalFlags :: FlagAssignment
47+ , _runHaddock :: Bool
48+ , _jailbreak :: Bool
49+ , _doCheck :: Bool
50+ , _testTarget :: String
51+ , _hyperlinkSource :: Bool
52+ , _enableSplitObjs :: Bool
53+ , _phaseOverrides :: String
54+ , _editedCabalFile :: String
55+ , _metaSection :: Meta
56+ }
57+ deriving (Show, Eq, Generic)
58+
59+instance Default Derivation where
60+ def = MkDerivation
61+ { _pkgid = error "undefined Derivation.pkgid"
62+ , _revision = error "undefined Derivation.revision"
63+ , _src = error "undefined Derivation.src"
64+ , _isLibrary = error "undefined Derivation.isLibrary"
65+ , _isExecutable = error "undefined Derivation.isExecutable"
66+ , _extraFunctionArgs = error "undefined Derivation.extraFunctionArgs"
67+ , _libraryDepends = error "undefined Derivation.libraryDepends"
68+ , _executableDepends = error "undefined Derivation.executableDepends"
69+ , _testDepends = error "undefined Derivation.testDepends"
70+ , _configureFlags = error "undefined Derivation.configureFlags"
71+ , _cabalFlags = error "undefined Derivation.cabalFlags"
72+ , _runHaddock = error "undefined Derivation.runHaddock"
73+ , _jailbreak = error "undefined Derivation.jailbreak"
74+ , _doCheck = error "undefined Derivation.doCheck"
75+ , _testTarget = error "undefined Derivation.testTarget"
76+ , _hyperlinkSource = error "undefined Derivation.hyperlinkSource"
77+ , _enableSplitObjs = error "undefined Derivation.enableSplitObjs"
78+ , _phaseOverrides = error "undefined Derivation.phaseOverrides"
79+ , _editedCabalFile = error "undefined Derivation.editedCabalFile"
80+ , _metaSection = error "undefined Derivation.metaSection"
81+ }
82+
83+makeLenses ''Derivation
84+
85+makeLensesFor [("_libraryDepends", "dependencies"), ("_executableDepends", "dependencies"), ("_testDepends", "dependencies")] ''Derivation
86+
87+instance Package Derivation where
88+ packageId = view pkgid
89+
90+instance NFData Derivation where rnf = genericRnf
91+
92+instance Pretty Derivation where
93+ pPrint drv@(MkDerivation {..}) = funargs (map text ("mkDerivation" : toAscList inputs)) $$ vcat
94+ [ text "mkDerivation" <+> lbrace
95+ , nest 2 $ vcat
96+ [ attr "pname" $ doubleQuotes $ disp (packageName _pkgid)
97+ , attr "version" $ doubleQuotes $ disp (packageVersion _pkgid)
98+ , sourceAttr _src
99+ , onlyIf (_revision > 0) $ attr "revision" $ doubleQuotes $ int _revision
100+ , onlyIf (not (null _editedCabalFile)) $ attr "editedCabalFile" $ string _editedCabalFile
101+ , listattr "configureFlags" empty (map (show . show) renderedFlags)
102+ , boolattr "isLibrary" (not _isLibrary || _isExecutable) _isLibrary
103+ , boolattr "isExecutable" (not _isLibrary || _isExecutable) _isExecutable
104+ , onlyIf (_libraryDepends /= mempty) $ pPrintBuildInfo "library" _libraryDepends
105+ , onlyIf (_executableDepends /= mempty) $ pPrintBuildInfo "executable" _executableDepends
106+ , onlyIf (_testDepends /= mempty) $ pPrintBuildInfo "test" _testDepends
107+ , boolattr "enableSplitObjs" (not _enableSplitObjs) _enableSplitObjs
108+ , boolattr "doHaddock" (not _runHaddock) _runHaddock
109+ , boolattr "jailbreak" _jailbreak _jailbreak
110+ , boolattr "doCheck" (not _doCheck) _doCheck
111+ , onlyIf (not (null _testTarget)) $ attr "testTarget" $ string _testTarget
112+ , boolattr "hyperlinkSource" (not _hyperlinkSource) _hyperlinkSource
113+ , onlyIf (not (null _phaseOverrides)) $ vcat ((map text . lines) _phaseOverrides)
114+ , pPrint _metaSection
115+ ]
116+ , rbrace
117+ ]
118+ where
119+ inputs :: Set String
120+ inputs = Set.unions [ Set.map (view ident) _extraFunctionArgs
121+ , setOf (dependencies . each . folded . localName . ident) drv
122+ , Set.fromList ["fetch" ++ derivKind _src | derivKind _src /= "" && not isHackagePackage]
123+ ]
124+
125+ renderedFlags = [ text "-f" <> (if enable then empty else char '-') <> text f | (FlagName f, enable) <- _cabalFlags ]
126+ ++ map text (toAscList _configureFlags)
127+ isHackagePackage = "mirror://hackage/" `isPrefixOf` derivUrl _src
128+ sourceAttr (DerivationSource{..})
129+ | isHackagePackage = attr "sha256" $ string derivHash
130+ | derivKind /= "" = vcat
131+ [ text "src" <+> equals <+> text ("fetch" ++ derivKind) <+> lbrace
132+ , nest 2 $ vcat
133+ [ attr "url" $ string derivUrl
134+ , attr "sha256" $ string derivHash
135+ , if derivRevision /= "" then attr "rev" (string derivRevision) else empty
136+ ]
137+ , rbrace <> semi
138+ ]
139+ | otherwise = attr "src" $ text derivUrl
src/Distribution/Nixpkgs/Haskell/FromCabal.hs+81−62
@@ -1,8 +1,8 @@
1+{-# LANGUAGE OverloadedStrings #-}
12{-# LANGUAGE RecordWildCards #-}
23
3−module Distribution.Nixpkgs.Haskell.FromCabal ( cabal2nix, cabal2nix' ) where
4+module Distribution.Nixpkgs.Haskell.FromCabal ( fromGenericPackageDescription, fromPackageDescription ) where
45
5−import Distribution.Nixpkgs.Haskell.FromCabal.Flags
66import Distribution.Nixpkgs.Haskell.FromCabal.License
77import Distribution.Nixpkgs.Haskell.FromCabal.Name
88import Distribution.Nixpkgs.Haskell.FromCabal.Normalize
@@ -10,76 +10,95 @@ import Distribution.Nixpkgs.Haskell.FromCabal.PostProcess
1010import Internal.Lens
1111import Data.Maybe
1212import qualified Data.Set as Set
13−import Data.Version
13+import Distribution.Version
1414import Distribution.Compiler
15−import Distribution.Nixpkgs.Fetch
15+import qualified Distribution.PackageDescription as Cabal
1616import Distribution.Nixpkgs.Haskell
1717import qualified Distribution.Nixpkgs.Haskell as Nix
1818import qualified Distribution.Nixpkgs.Meta as Nix
1919import Distribution.Package
2020import Distribution.PackageDescription
21−import qualified Distribution.PackageDescription as Cabal
2221import Distribution.PackageDescription.Configuration
2322import Distribution.System
23+import Language.Nix
24+import Distribution.Nixpkgs.Haskell.Constraint
2425import Distribution.Text ( display )
2526
26−cabal2nix :: FlagAssignment -> GenericPackageDescription -> Derivation
27−cabal2nix flags' cabal = normalize $ drv & cabalFlags .~ flags
28− where drv = cabal2nix' descr
29− flags = normalizeCabalFlags (flags' ++ configureCabalFlags (package (packageDescription cabal)))
30− Right (descr, _) = finalizePackageDescription
31− flags
32− (const True)
33− (Platform X86_64 Linux) -- shouldn't be hardcoded
34− (unknownCompilerInfo (CompilerId GHC (Version [7,10,2] [])) NoAbiTag)
35− []
36− cabal
27+type HaskellResolver = Dependency -> Bool
28+type NixpkgsResolver = Identifier -> Maybe Binding
29+
30+fromGenericPackageDescription :: HaskellResolver -> NixpkgsResolver -> Platform -> CompilerInfo -> FlagAssignment -> [Constraint] -> GenericPackageDescription -> Derivation
31+fromGenericPackageDescription haskellResolver nixpkgsResolver arch compiler flags constraints descr' =
32+ case finalize haskellResolver of
33+ Left mismatch -> case finalize jailbrokenResolver of
34+ Left missing -> case finalize (const True) of
35+ Left missing' -> error $ "finalizePackageDescription complains about missing dependencies \
36+ \even though we told it that everything exists: " ++ show missing'
37+ Right (descr,_) -> fromPackageDescription haskellResolver nixpkgsResolver mismatch missing flags descr
38+ Right (descr,_) -> fromPackageDescription haskellResolver nixpkgsResolver mismatch [] flags descr
39+ Right (descr,_) -> fromPackageDescription haskellResolver nixpkgsResolver [] [] flags descr
40+
41+ where
42+ -- We have to call the Cabal finalizer several times with different resolver functions, and this
43+ -- convenience function makes our code shorter.
44+ finalize :: HaskellResolver -> Either [Dependency] (PackageDescription,FlagAssignment)
45+ finalize resolver = finalizePackageDescription flags resolver arch compiler constraints descr'
46+
47+ jailbrokenResolver :: HaskellResolver
48+ jailbrokenResolver (Dependency pkg _) = haskellResolver (Dependency pkg anyVersion)
3749
38−cabal2nix' :: PackageDescription -> Derivation
39−cabal2nix' PackageDescription {..} = normalize $ postProcess $
40− let
50+fromPackageDescription :: HaskellResolver -> NixpkgsResolver -> [Dependency] -> [Dependency] -> FlagAssignment -> PackageDescription -> Derivation
51+fromPackageDescription haskellResolver nixpkgsResolver mismatchedDeps missingDeps flags (PackageDescription {..}) = normalize $ postProcess $ def
52+ & isLibrary .~ isJust library
53+ & pkgid .~ package
54+ & revision .~ xrev
55+ & isLibrary .~ isJust library
56+ & isExecutable .~ not (null executables)
57+ & extraFunctionArgs .~ mempty
58+ & libraryDepends .~ maybe mempty (convertBuildInfo . libBuildInfo) library
59+ & executableDepends .~ mconcat (map (convertBuildInfo . buildInfo) executables)
60+ & testDepends .~ mconcat (map (convertBuildInfo . testBuildInfo) testSuites)
61+ & configureFlags .~ mempty
62+ & cabalFlags .~ flags
63+ & runHaddock .~ True
64+ & jailbreak .~ not (null mismatchedDeps)
65+ & doCheck .~ True
66+ & testTarget .~ mempty
67+ & hyperlinkSource .~ True
68+ & enableSplitObjs .~ True
69+ & phaseOverrides .~ mempty
70+ & editedCabalFile .~ (if xrev > 0
71+ then fromMaybe (error (display package ++ ": X-Cabal-File-Hash field is missing")) (lookup "X-Cabal-File-Hash" customFieldsPD)
72+ else "")
73+ & metaSection .~ ( def
74+ & Nix.homepage .~ homepage
75+ & Nix.description .~ synopsis
76+ & Nix.license .~ fromCabalLicense license
77+ & Nix.platforms .~ mempty
78+ & Nix.hydraPlatforms .~ mempty
79+ & Nix.maintainers .~ mempty
80+ & Nix.broken .~ not (null missingDeps)
81+ )
82+ where
4183 xrev = maybe 0 read (lookup "x-revision" customFieldsPD)
42− in
43− def
44− & pkgid .~ package
45− & revision .~ xrev
46− & src .~ DerivationSource
47− { derivKind = "url"
48− , derivUrl = mempty
49− , derivRevision = mempty
50− , derivHash = mempty
51− }
52− & isLibrary .~ isJust library
53− & isExecutable .~ not (null executables)
54− & extraFunctionArgs .~ mempty
55− & libraryDepends .~ maybe mempty (convertBuildInfo . libBuildInfo) library
56− & executableDepends .~ mconcat (map (convertBuildInfo . buildInfo) executables)
57− & testDepends .~ mconcat (map (convertBuildInfo . testBuildInfo) testSuites)
58− & configureFlags .~ mempty
59− & cabalFlags .~ configureCabalFlags package
60− & runHaddock .~ True
61− & jailbreak .~ False
62− & doCheck .~ True
63− & testTarget .~ mempty
64− & hyperlinkSource .~ True
65− & enableSplitObjs .~ True
66− & phaseOverrides .~ mempty
67− & editedCabalFile .~ (if xrev > 0 then fromMaybe (error (display package ++ ": X-Cabal-File-Hash field is missing"))
68− (lookup "X-Cabal-File-Hash" customFieldsPD)
69− else "")
70− & metaSection .~ ( def
71− & Nix.homepage .~ homepage
72− & Nix.description .~ synopsis
73− & Nix.license .~ fromCabalLicense license
74− & Nix.platforms .~ mempty
75− & Nix.hydraPlatforms .~ mempty
76− & Nix.maintainers .~ mempty
77− & Nix.broken .~ False
78− )
7984
80−convertBuildInfo :: Cabal.BuildInfo -> Nix.BuildInfo
81−convertBuildInfo Cabal.BuildInfo {..} = mempty
82− & haskell .~ Set.fromList [ toNixName x | (Dependency x _) <- targetBuildDepends ]
83− & system .~ Set.fromList [ y | x <- extraLibs, y <- libNixName x ]
84− & pkgconfig .~ Set.fromList [ y | Dependency (PackageName x) _ <- pkgconfigDepends, y <- libNixName x ]
85− & tool .~ Set.fromList [ y | Dependency (PackageName x) _ <- buildTools, y <- buildToolNixName x ]
85+ resolveInHackage :: Identifier -> Binding
86+ resolveInHackage i | (i^.ident) `elem` [ n | (Dependency (PackageName n) _) <- missingDeps ] = bindNull i
87+ | otherwise = create binding (i, create path ["self",i]) -- TODO: "self" shouldn't be hardcoded.
88+
89+ resolveInNixpkgs :: Identifier -> Binding
90+ resolveInNixpkgs i = fromMaybe (bindNull i) (nixpkgsResolver i)
91+
92+ resolveInHackageThenNixpkgs :: Identifier -> Binding
93+ resolveInHackageThenNixpkgs i | haskellResolver (Dependency (PackageName (i^.ident)) anyVersion) = resolveInHackage i
94+ | otherwise = resolveInNixpkgs i
95+
96+ convertBuildInfo :: Cabal.BuildInfo -> Nix.BuildInfo
97+ convertBuildInfo Cabal.BuildInfo {..} = mempty
98+ & haskell .~ Set.fromList [ resolveInHackage (toNixName x) | (Dependency x _) <- targetBuildDepends ]
99+ & system .~ Set.fromList [ resolveInNixpkgs y | x <- extraLibs, y <- libNixName x ]
100+ & pkgconfig .~ Set.fromList [ resolveInNixpkgs y | Dependency (PackageName x) _ <- pkgconfigDepends, y <- libNixName x ]
101+ & tool .~ Set.fromList [ resolveInHackageThenNixpkgs y | Dependency (PackageName x) _ <- buildTools, y <- buildToolNixName x ]
102+
103+bindNull :: Identifier -> Binding
104+bindNull i = create binding (i, create path ["null"])
src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration.hsnew file+46
@@ -0,0 +1,46 @@
1+module Distribution.Nixpkgs.Haskell.FromCabal.Configuration
2+ ( Configuration(..)
3+ , module Distribution.Package
4+ , module Distribution.System
5+ , module Distribution.Compiler
6+ , module Distribution.Nixpkgs.Haskell.Constraint
7+ , module Distribution.Version
8+ ) where
9+
10+import Data.Set
11+import Distribution.Package
12+import Distribution.System
13+import Distribution.Compiler
14+import Distribution.Nixpkgs.Haskell.Constraint
15+import Distribution.Version
16+
17+data Configuration = Configuration
18+ {
19+ -- |Target architecture. Used by 'finalizePackageDescription' to
20+ -- choose appropriate flags and dependencies.
21+ platform :: Platform
22+
23+ -- |Target compiler. Used by 'finalizePackageDescription' to choose
24+ -- appropriate flags and dependencies.
25+ , compilerInfo :: CompilerInfo
26+
27+ -- |Core packages found on Hackageg
28+ , corePackages :: [PackageIdentifier]
29+
30+ -- |Core packages not found on Hackage.
31+ , hardCorePackages :: [PackageIdentifier]
32+
33+ -- |These packages replace the latest respective version during
34+ -- dependency resolution.
35+ , defaultPackageOverrides :: [Constraint]
36+
37+ -- |These packages are added to the generated set, but the play no
38+ -- role during dependency resolution.
39+ , extraPackages :: [Constraint]
40+
41+ -- |These packages have not succeeded a build yet, so we give them an
42+ -- empty meta.hydraPlatforms attribute to avoid cluttering our Hydra
43+ -- output with lots of broken builds.
44+ , brokenPackages :: Set PackageName
45+ }
46+ deriving (Show)
src/Distribution/Nixpkgs/Haskell/FromCabal/Configuration/GHC7102.hsnew file+3679
@@ -0,0 +1,3679 @@
1+module Distribution.Nixpkgs.Haskell.FromCabal.Configuration.GHC7102 ( Configuration(..), ghc7102 ) where
2+
3+import Data.Maybe ( fromMaybe )
4+import qualified Data.Set as Set
5+import Distribution.Nixpkgs.Haskell.FromCabal.Configuration
6+import Distribution.Text ( simpleParse )
7+
8+ghc7102 :: Configuration
9+ghc7102 = Configuration
10+ { platform = Platform X86_64 Linux
11+
12+ , compilerInfo = unknownCompilerInfo (CompilerId GHC (Version [7,10,2] [])) NoAbiTag
13+
14+ , defaultPackageOverrides = map (\s -> fromMaybe (error (show s ++ " is not a valid override selector")) (simpleParse s))
15+ [ "HUnit < 1.3.0.0" -- newer versions break test-framework-hunit-0.3.0.1
16+ ]
17+
18+ , corePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s))
19+ [ "Cabal-1.22.4.0"
20+ , "array-0.5.1.0"
21+ , "base-4.8.1.0"
22+ , "binary-0.7.5.0"
23+ , "bytestring-0.10.6.0"
24+ , "containers-0.5.6.2"
25+ , "deepseq-1.4.1.1"
26+ , "directory-1.2.2.0"
27+ , "filepath-1.4.0.0"
28+ , "ghc-prim-0.4.0.0"
29+ , "haskeline-0.7.2.1"
30+ , "hoopl-3.10.0.2"
31+ , "hpc-0.6.0.2"
32+ , "integer-gmp-1.0.0.0"
33+ , "pretty-1.1.2.0"
34+ , "process-1.2.3.0"
35+ , "template-haskell-2.10.0.0"
36+ , "terminfo-0.4.0.1"
37+ , "time-1.5.0.1"
38+ , "transformers-0.4.2.0"
39+ , "unix-2.7.1.0"
40+ , "xhtml-3000.2.1"
41+ ]
42+
43+ , hardCorePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s))
44+ [ "bin-package-db-0.0.0.0"
45+ , "ghc-7.10.2"
46+ , "rts-1.0"
47+ ]
48+
49+ , extraPackages = map (\s -> fromMaybe (error (show s ++ " is not a valid extra package selector")) (simpleParse s))
50+ [ "aeson < 0.8" -- newer versions don't work with GHC 6.12.3
51+ , "Cabal == 1.18.*" -- required for cabal-install et al on old GHC versions
52+ , "Cabal == 1.20.*" -- required for cabal-install et al on old GHC versions
53+ , "cabal-install == 1.18.*" -- required for ghc-mod on 7.8.x
54+ , "conduit < 1.2.4.2" -- newer versions trigger non-deterministic ID bugs in GHC versions prior to 7.10.x
55+ , "containers < 0.5" -- required to build alex with GHC 6.12.3
56+ , "control-monad-free < 0.6" -- newer versions don't compile with anything but GHC 7.8.x
57+ , "deepseq == 1.3.0.1" -- required to build Cabal with GHC 6.12.3
58+ , "descriptive < 0.1" -- required for structured-haskell-mode-1.0.8
59+ , "gloss < 1.9.3" -- new versions don't compile with GHC 7.8.x
60+ , "haddock-api < 2.16" -- required on GHC 7.8.x
61+ , "haskell-src-exts < 1.16" -- required for structured-haskell-mode-1.0.8
62+ , "mtl < 2.2" -- newer versions require transformers > 0.4.x, which we cannot provide in GHC 7.8.x
63+ , "mtl-prelude < 2" -- required for to build postgrest on mtl 2.1.x platforms
64+ , "parallel == 3.2.0.3" -- newer versions don't work with GHC 6.12.3
65+ , "primitive == 0.5.1.*" -- required to build alex with GHC 6.12.3
66+ , "QuickCheck < 2" -- required by test-framework-quickcheck and its users
67+ , "seqid < 0.2" -- newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
68+ , "seqid-streams < 0.2" -- newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
69+ , "split < 0.2" -- newer versions don't work with GHC 6.12.3
70+ , "tar < 0.4.2.0" -- later versions don't work with GHC < 7.6.x
71+ , "vector < 0.10.10" -- newer versions don't work with GHC 6.12.3
72+ , "zlib < 0.6" -- newer versions break cabal-install
73+ ]
74+
75+ , brokenPackages = Set.fromList $ map PackageName
76+ [ "3dmodels"
77+ , "4Blocks"
78+ , "abcBridge"
79+ , "abstract-par-accelerate"
80+ , "abt"
81+ , "AC-BuildPlatform"
82+ , "accelerate-arithmetic"
83+ , "accelerate-fftw"
84+ , "accelerate-fourier"
85+ , "accelerate-io"
86+ , "accelerate-utility"
87+ , "accentuateus"
88+ , "access-time"
89+ , "AC-EasyRaster-GTK"
90+ , "AC-HalfInteger"
91+ , "ACME"
92+ , "acme-hq9plus"
93+ , "acme-inator"
94+ , "acme-numbersystem"
95+ , "acme-schoenfinkel"
96+ , "acme-zero"
97+ , "AC-MiniTest"
98+ , "AC-Terminal"
99+ , "ActionKid"
100+ , "activehs"
101+ , "actor"
102+ , "AC-VanillaArray"
103+ , "Adaptive"
104+ , "Adaptive-Blaisorblade"
105+ , "adaptive-containers"
106+ , "adaptive-tuple"
107+ , "adblock2privoxy"
108+ , "adhoc-network"
109+ , "adict"
110+ , "adobe-swatch-exchange"
111+ , "adp-multi"
112+ , "adp-multi-monadiccp"
113+ , "Advgame"
114+ , "AERN-Basics"
115+ , "AERN-Net"
116+ , "AERN-Real"
117+ , "AERN-Real-Double"
118+ , "AERN-Real-Interval"
119+ , "AERN-RnToRm"
120+ , "AERN-RnToRm-Plot"
121+ , "aeson-bson"
122+ , "AesonBson"
123+ , "aeson-native"
124+ , "aeson-smart"
125+ , "afv"
126+ , "Agata"
127+ , "agda-server"
128+ , "AGI"
129+ , "AhoCorasick"
130+ , "airbrake"
131+ , "aivika-experiment-diagrams"
132+ , "aivika-transformers"
133+ , "ajhc"
134+ , "alea"
135+ , "algebraic"
136+ , "alms"
137+ , "alpha"
138+ , "alpino-tools"
139+ , "alsa"
140+ , "alsa-midi"
141+ , "alsa-pcm-tests"
142+ , "alsa-seq-tests"
143+ , "altfloat"
144+ , "alure"
145+ , "amazon-emailer"
146+ , "amazon-products"
147+ , "AMI"
148+ , "ampersand"
149+ , "anansi-pandoc"
150+ , "anatomy"
151+ , "android-lint-summary"
152+ , "AndroidViewHierarchyImporter"
153+ , "angel"
154+ , "Animas"
155+ , "antfarm"
156+ , "anticiv"
157+ , "antigate"
158+ , "antimirov"
159+ , "antlrc"
160+ , "anydbm"
161+ , "aosd"
162+ , "apelsin"
163+ , "apiary-helics"
164+ , "apiary-purescript"
165+ , "apis"
166+ , "api-tools"
167+ , "apotiki"
168+ , "appc"
169+ , "app-lens"
170+ , "ApplePush"
171+ , "AppleScript"
172+ , "approx-rand-test"
173+ , "arbb-vm"
174+ , "arb-fft"
175+ , "archiver"
176+ , "archlinux"
177+ , "archlinux-web"
178+ , "arff"
179+ , "argparser"
180+ , "arguedit"
181+ , "ariadne"
182+ , "arion"
183+ , "armada"
184+ , "array-forth"
185+ , "ArrayRef"
186+ , "arrowapply-utils"
187+ , "arrow-improve"
188+ , "arrowp"
189+ , "ArrowVHDL"
190+ , "arx"
191+ , "ascii85-conduit"
192+ , "asic"
193+ , "asil"
194+ , "asn1-data"
195+ , "AspectAG"
196+ , "assimp"
197+ , "astrds"
198+ , "astview"
199+ , "async-extras"
200+ , "aterm-utils"
201+ , "atlassian-connect-core"
202+ , "atlassian-connect-descriptor"
203+ , "atom-basic"
204+ , "atom-msp430"
205+ , "atomo"
206+ , "attoparsec-csv"
207+ , "attoparsec-iteratee"
208+ , "attoparsec-text"
209+ , "attoparsec-text-enumerator"
210+ , "Attrac"
211+ , "atuin"
212+ , "augeas"
213+ , "augur"
214+ , "Aurochs"
215+ , "authoring"
216+ , "AutoForms"
217+ , "autoproc"
218+ , "avahi"
219+ , "avers"
220+ , "AvlTree"
221+ , "awesomium"
222+ , "awesomium-glut"
223+ , "awesomium-raw"
224+ , "AWin32Console"
225+ , "aws-cloudfront-signer"
226+ , "aws-ec2"
227+ , "aws-elastic-transcoder"
228+ , "aws-kinesis-reshard"
229+ , "aws-lambda"
230+ , "aws-sdk"
231+ , "aws-sdk-text-converter"
232+ , "aws-sdk-xml-unordered"
233+ , "aws-sign4"
234+ , "aws-sns"
235+ , "azure-service-api"
236+ , "azurify"
237+ , "backdropper"
238+ , "bag"
239+ , "Baggins"
240+ , "bamboo"
241+ , "bamboo-launcher"
242+ , "bamboo-plugin-highlight"
243+ , "bamboo-plugin-photo"
244+ , "bamboo-theme-blueprint"
245+ , "bamboo-theme-mini-html5"
246+ , "bamse"
247+ , "barcodes-code128"
248+ , "barley"
249+ , "Barracuda"
250+ , "barrie"
251+ , "barrier-monad"
252+ , "baskell"
253+ , "battleships"
254+ , "bayes-stack"
255+ , "BCMtools"
256+ , "beamable"
257+ , "beautifHOL"
258+ , "bed-and-breakfast"
259+ , "Befunge93"
260+ , "bein"
261+ , "berkeleydb"
262+ , "BerkeleyDBXML"
263+ , "berp"
264+ , "bff"
265+ , "bgzf"
266+ , "bidirectionalization-combined"
267+ , "bidispec"
268+ , "billboard-parser"
269+ , "billeksah-forms"
270+ , "billeksah-main"
271+ , "billeksah-pane"
272+ , "billeksah-services"
273+ , "binary-derive"
274+ , "binary-file"
275+ , "binary-indexed-tree"
276+ , "binary-protocol-zmq"
277+ , "binary-streams"
278+ , "binary-strict"
279+ , "binding-gtk"
280+ , "bindings-apr"
281+ , "bindings-apr-util"
282+ , "bindings-bfd"
283+ , "bindings-cctools"
284+ , "bindings-codec2"
285+ , "bindings-common"
286+ , "bindings-dc1394"
287+ , "bindings-eskit"
288+ , "bindings-EsounD"
289+ , "bindings-fann"
290+ , "bindings-friso"
291+ , "bindings-gts"
292+ , "bindings-hdf5"
293+ , "bindings-K8055"
294+ , "bindings-libftdi"
295+ , "bindings-librrd"
296+ , "bindings-libstemmer"
297+ , "bindings-libv4l2"
298+ , "bindings-linux-videodev2"
299+ , "bindings-mpdecimal"
300+ , "bindings-sc3"
301+ , "bindings-sipc"
302+ , "bind-marshal"
303+ , "bio"
304+ , "Biobase"
305+ , "BiobaseBlast"
306+ , "BiobaseDotP"
307+ , "BiobaseFasta"
308+ , "BiobaseFR3D"
309+ , "BiobaseInfernal"
310+ , "BiobaseMAF"
311+ , "BiobaseTrainingData"
312+ , "BiobaseTurner"
313+ , "BiobaseVienna"
314+ , "biophd"
315+ , "biosff"
316+ , "biostockholm"
317+ , "bird"
318+ , "BirdPP"
319+ , "bit-array"
320+ , "bitcoin-rpc"
321+ , "Bitly"
322+ , "bitly-cli"
323+ , "bits-conduit"
324+ , "bitset"
325+ , "bitspeak"
326+ , "BitSyntax"
327+ , "bittorrent"
328+ , "bkr"
329+ , "bla"
330+ , "black-jewel"
331+ , "blakesum"
332+ , "blakesum-demo"
333+ , "blank-canvas"
334+ , "blas"
335+ , "blas-hs"
336+ , "blaze"
337+ , "blaze-html-contrib"
338+ , "blaze-html-hexpat"
339+ , "blazeMarker"
340+ , "blaze-textual-native"
341+ , "Blobs"
342+ , "blogination"
343+ , "BlogLiterately-diagrams"
344+ , "Blueprint"
345+ , "bluetile"
346+ , "board-games"
347+ , "bogre-banana"
348+ , "Bookshelf"
349+ , "boolean-normal-forms"
350+ , "bools"
351+ , "boolsimplifier"
352+ , "boomslang"
353+ , "borel"
354+ , "bot"
355+ , "brainfuck-monad"
356+ , "Bravo"
357+ , "breakout"
358+ , "brians-brain"
359+ , "brillig"
360+ , "bsd-sysctl"
361+ , "bson-generics"
362+ , "bson-mapping"
363+ , "btree-concurrent"
364+ , "buildbox-tools"
365+ , "buildwrapper"
366+ , "bullet"
367+ , "buster"
368+ , "Buster"
369+ , "buster-gtk"
370+ , "buster-network"
371+ , "bytable"
372+ , "bytestring-class"
373+ , "bytestring-csv"
374+ , "bytestringparser"
375+ , "bytestring-plain"
376+ , "bytestringreadp"
377+ , "bytestring-rematch"
378+ , "bytestring-short"
379+ , "cabal2arch"
380+ , "cabal2doap"
381+ , "cabal2spec"
382+ , "cabal-constraints"
383+ , "cabal-dev"
384+ , "cabal-ghci"
385+ , "cabalgraph"
386+ , "cabal-graphdeps"
387+ , "cabal-install-bundle"
388+ , "cabal-install-ghc72"
389+ , "cabal-install-ghc74"
390+ , "cabalmdvrpm"
391+ , "cabal-query"
392+ , "cabalrpmdeps"
393+ , "cabal-scripts"
394+ , "cabal-setup"
395+ , "cabal-test"
396+ , "cabal-upload"
397+ , "cabocha"
398+ , "cake3"
399+ , "cakyrespa"
400+ , "cal3d"
401+ , "cal3d-examples"
402+ , "cal3d-opengl"
403+ , "calc"
404+ , "caldims"
405+ , "caledon"
406+ , "call-haskell-from-anything"
407+ , "campfire"
408+ , "cantor"
409+ , "cao"
410+ , "cap"
411+ , "Capabilities"
412+ , "capri"
413+ , "carboncopy"
414+ , "carettah"
415+ , "casadi-bindings"
416+ , "casadi-bindings-control"
417+ , "casadi-bindings-core"
418+ , "casadi-bindings-internal"
419+ , "casadi-bindings-ipopt-interface"
420+ , "casadi-bindings-snopt-interface"
421+ , "Cascade"
422+ , "cascading"
423+ , "cash"
424+ , "cassandra-thrift"
425+ , "cassava-streams"
426+ , "cassy"
427+ , "casui"
428+ , "Catana"
429+ , "catch-fd"
430+ , "categorical-algebra"
431+ , "category-extras"
432+ , "CBOR"
433+ , "CC-delcont"
434+ , "CC-delcont-alt"
435+ , "CC-delcont-cxe"
436+ , "CC-delcont-exc"
437+ , "CC-delcont-ref"
438+ , "CC-delcont-ref-tf"
439+ , "cci"
440+ , "cctools-workqueue"
441+ , "cedict"
442+ , "ceilometer-common"
443+ , "cereal-enumerator"
444+ , "cereal-ieee754"
445+ , "cereal-plus"
446+ , "certificate"
447+ , "cf"
448+ , "cfipu"
449+ , "cflp"
450+ , "cfopu"
451+ , "cgen"
452+ , "cgi-utils"
453+ , "chalkboard"
454+ , "chalkboard-viewer"
455+ , "charade"
456+ , "Chart-diagrams"
457+ , "chatter"
458+ , "checked"
459+ , "check-pvp"
460+ , "chevalier-common"
461+ , "Chitra"
462+ , "chp"
463+ , "chp-mtl"
464+ , "chp-plus"
465+ , "chp-spec"
466+ , "chp-transformers"
467+ , "ChristmasTree"
468+ , "chronograph"
469+ , "chuchu"
470+ , "chunks"
471+ , "church-list"
472+ , "cil"
473+ , "cinvoke"
474+ , "c-io"
475+ , "cio"
476+ , "citation-resolve"
477+ , "citeproc-hs"
478+ , "citeproc-hs-pandoc-filter"
479+ , "cjk"
480+ , "clac"
481+ , "clafer"
482+ , "claferIG"
483+ , "claferwiki"
484+ , "CLASE"
485+ , "clash"
486+ , "clash-ghc"
487+ , "clash-prelude"
488+ , "clash-prelude-quickcheck"
489+ , "clash-systemverilog"
490+ , "clash-vhdl"
491+ , "ClassLaws"
492+ , "ClassyPrelude"
493+ , "clckwrks"
494+ , "clckwrks-cli"
495+ , "clckwrks-dot-com"
496+ , "clckwrks-plugin-bugs"
497+ , "clckwrks-plugin-ircbot"
498+ , "clckwrks-plugin-media"
499+ , "clckwrks-plugin-page"
500+ , "clckwrks-theme-bootstrap"
501+ , "clckwrks-theme-clckwrks"
502+ , "clckwrks-theme-geo-bootstrap"
503+ , "Clean"
504+ , "clevercss"
505+ , "clifford"
506+ , "clipper"
507+ , "clippings"
508+ , "clocked"
509+ , "clogparse"
510+ , "clone-all"
511+ , "cloudfront-signer"
512+ , "cloud-haskell"
513+ , "cloudyfs"
514+ , "clua"
515+ , "cluss"
516+ , "clustering"
517+ , "clustertools"
518+ , "clutterhs"
519+ , "cmaes"
520+ , "cmath"
521+ , "cmathml3"
522+ , "CMCompare"
523+ , "cmdargs-browser"
524+ , "cmdtheline"
525+ , "cmonad"
526+ , "cnc-spec-compiler"
527+ , "cndict"
528+ , "Coadjute"
529+ , "Codec-Image-DevIL"
530+ , "codec-libevent"
531+ , "codecov-haskell"
532+ , "codemonitor"
533+ , "codepad"
534+ , "cognimeta-utils"
535+ , "coinbase-exchange"
536+ , "colada"
537+ , "collada-output"
538+ , "collada-types"
539+ , "collections"
540+ , "collections-api"
541+ , "collections-base-instances"
542+ , "coltrane"
543+ , "com"
544+ , "combinat"
545+ , "combinat-diagrams"
546+ , "combinatorial-problems"
547+ , "combinator-interactive"
548+ , "Combinatorrent"
549+ , "Commando"
550+ , "commodities"
551+ , "commsec"
552+ , "commsec-keyexchange"
553+ , "comonad-extras"
554+ , "comonad-random"
555+ , "compact-map"
556+ , "compact-string"
557+ , "compilation"
558+ , "complexity"
559+ , "compose-trans"
560+ , "compression"
561+ , "compstrat"
562+ , "comptrans"
563+ , "computational-algebra"
564+ , "concraft"
565+ , "concraft-hr"
566+ , "concraft-pl"
567+ , "concrete-typerep"
568+ , "concurrent-state"
569+ , "ConcurrentUtils"
570+ , "condor"
571+ , "Condor"
572+ , "condorcet"
573+ , "conductive-clock"
574+ , "conductive-hsc3"
575+ , "conduit-audio-lame"
576+ , "conduit-audio-samplerate"
577+ , "conduit-iconv"
578+ , "conduit-network-stream"
579+ , "conduit-resumablesink"
580+ , "Configger"
581+ , "config-select"
582+ , "conjure"
583+ , "consistent"
584+ , "const-math-ghc-plugin"
585+ , "constrained-categories"
586+ , "constructive-algebra"
587+ , "consul-haskell"
588+ , "Consumer"
589+ , "context-stack"
590+ , "continue"
591+ , "continuum"
592+ , "continuum-client"
593+ , "Contract"
594+ , "control-event"
595+ , "control-monad-attempt"
596+ , "control-monad-exception-mtl"
597+ , "control-monad-failure"
598+ , "control-monad-failure-mtl"
599+ , "Control-Monad-MultiPass"
600+ , "Control-Monad-ST2"
601+ , "contstuff-monads-tf"
602+ , "contstuff-transformers"
603+ , "convertible-ascii"
604+ , "convertible-text"
605+ , "copilot"
606+ , "copilot-c99"
607+ , "copilot-cbmc"
608+ , "copilot-core"
609+ , "copilot-language"
610+ , "copilot-libraries"
611+ , "copilot-sbv"
612+ , "COrdering"
613+ , "core"
614+ , "corebot-bliki"
615+ , "CoreErlang"
616+ , "CoreFoundation"
617+ , "core-haskell"
618+ , "Coroutine"
619+ , "coroutine-iteratee"
620+ , "CouchDB"
621+ , "couchdb-conduit"
622+ , "couchdb-enumerator"
623+ , "couch-hs"
624+ , "court"
625+ , "CPBrainfuck"
626+ , "cpio-conduit"
627+ , "CPL"
628+ , "cplusplus-th"
629+ , "cpsa"
630+ , "cpuperf"
631+ , "cpython"
632+ , "cqrs"
633+ , "cqrs-example"
634+ , "cqrs-postgresql"
635+ , "cqrs-sqlite3"
636+ , "cqrs-test"
637+ , "cqrs-types"
638+ , "cr"
639+ , "crack"
640+ , "Craft3e"
641+ , "craftwerk"
642+ , "craftwerk-cairo"
643+ , "craftwerk-gtk"
644+ , "crc16"
645+ , "crf-chain1"
646+ , "crf-chain1-constrained"
647+ , "crf-chain2-generic"
648+ , "crf-chain2-tiers"
649+ , "criterion-plus"
650+ , "crocodile"
651+ , "crunghc"
652+ , "crypto-cipher-benchmarks"
653+ , "cryptsy-api"
654+ , "crystalfontz"
655+ , "cse-ghc-plugin"
656+ , "csound-catalog"
657+ , "csound-expression"
658+ , "csound-expression-opcodes"
659+ , "csound-expression-typed"
660+ , "csound-sampler"
661+ , "csp"
662+ , "cspmchecker"
663+ , "CSPM-cspm"
664+ , "CSPM-FiringRules"
665+ , "CSPM-Frontend"
666+ , "CSPM-Interpreter"
667+ , "CSPM-ToProlog"
668+ , "css"
669+ , "ctemplate"
670+ , "ctkl"
671+ , "ctpl"
672+ , "cudd"
673+ , "curry-base"
674+ , "CurryDB"
675+ , "curry-frontend"
676+ , "cursedcsv"
677+ , "curves"
678+ , "CV"
679+ , "cypher"
680+ , "dag"
681+ , "DAG-Tournament"
682+ , "Dangerous"
683+ , "dao"
684+ , "Dao"
685+ , "dapi"
686+ , "darcs2dot"
687+ , "darcs-benchmark"
688+ , "darcs-beta"
689+ , "darcs-buildpackage"
690+ , "darcs-cabalized"
691+ , "darcsden"
692+ , "darcs-graph"
693+ , "DarcsHelpers"
694+ , "darcs-monitor"
695+ , "darcs-scripts"
696+ , "darcswatch"
697+ , "darkplaces-demo"
698+ , "data-cycle"
699+ , "data-dispersal"
700+ , "data-easy"
701+ , "data-extra"
702+ , "data-ivar"
703+ , "data-lens-ixset"
704+ , "datalog"
705+ , "data-named"
706+ , "data-nat"
707+ , "data-object-json"
708+ , "data-object-yaml"
709+ , "data-quotientref"
710+ , "data-rope"
711+ , "Data-Rope"
712+ , "data-store"
713+ , "DataTreeView"
714+ , "data-type"
715+ , "dbjava"
716+ , "d-bus"
717+ , "DBus"
718+ , "dbus-client"
719+ , "dbus-core"
720+ , "dclabel"
721+ , "ddc-build"
722+ , "ddc-core"
723+ , "ddc-core-eval"
724+ , "ddc-core-flow"
725+ , "ddc-core-llvm"
726+ , "ddc-core-salt"
727+ , "ddc-core-simpl"
728+ , "ddc-core-tetra"
729+ , "ddc-driver"
730+ , "ddci-core"
731+ , "ddc-source-tetra"
732+ , "ddc-tools"
733+ , "Deadpan-DDP"
734+ , "dead-simple-json"
735+ , "decepticons"
736+ , "DecisionTree"
737+ , "decoder-conduit"
738+ , "dedukti"
739+ , "deeplearning-hs"
740+ , "deepseq-bounded"
741+ , "deepseq-th"
742+ , "deepzoom"
743+ , "defargs"
744+ , "DefendTheKing"
745+ , "definitive-base"
746+ , "definitive-filesystem"
747+ , "definitive-graphics"
748+ , "definitive-parser"
749+ , "definitive-reactive"
750+ , "definitive-sound"
751+ , "deka"
752+ , "deka-tests"
753+ , "delicious"
754+ , "delta-h"
755+ , "demarcate"
756+ , "denominate"
757+ , "depends"
758+ , "dephd"
759+ , "dequeue"
760+ , "derangement"
761+ , "derivation-trees"
762+ , "derive-gadt"
763+ , "derive-IG"
764+ , "derive-topdown"
765+ , "derive-trie"
766+ , "derp-lib"
767+ , "dewdrop"
768+ , "Dflow"
769+ , "dfsbuild"
770+ , "dgim"
771+ , "dgs"
772+ , "diagrams-builder"
773+ , "diagrams-canvas"
774+ , "diagrams-haddock"
775+ , "diagrams-hsqml"
776+ , "diagrams-pdf"
777+ , "diagrams-pgf"
778+ , "diagrams-qrcode"
779+ , "diagrams-tikz"
780+ , "dice-entropy-conduit"
781+ , "dicom"
782+ , "dictparser"
783+ , "diffcabal"
784+ , "DifferenceLogic"
785+ , "DifferentialEvolution"
786+ , "digestive-functors-hsp"
787+ , "DimensionalHash"
788+ , "dingo-core"
789+ , "dingo-example"
790+ , "dingo-widgets"
791+ , "diophantine"
792+ , "direct-binary-files"
793+ , "directed-cubical"
794+ , "direct-fastcgi"
795+ , "direct-http"
796+ , "direct-plugins"
797+ , "DirectSound"
798+ , "dirfiles"
799+ , "discount"
800+ , "disjoint-set"
801+ , "DisTract"
802+ , "distributed-process-async"
803+ , "distributed-process-azure"
804+ , "distributed-process-client-server"
805+ , "distributed-process-execution"
806+ , "distributed-process-extras"
807+ , "distributed-process-platform"
808+ , "distributed-process-registry"
809+ , "distributed-process-supervisor"
810+ , "distributed-process-task"
811+ , "distributed-process-tests"
812+ , "distributed-process-zookeeper"
813+ , "distribution"
814+ , "distribution-plot"
815+ , "dist-upload"
816+ , "djinn-th"
817+ , "DnaProteinAlignment"
818+ , "dnscache"
819+ , "dnssd"
820+ , "doccheck"
821+ , "docidx"
822+ , "docker"
823+ , "dockercook"
824+ , "doc-review"
825+ , "DocTest"
826+ , "doctest-discover"
827+ , "doctest-discover-configurator"
828+ , "DOM"
829+ , "download"
830+ , "download-media-content"
831+ , "DP"
832+ , "dph-examples"
833+ , "dph-lifted-base"
834+ , "dph-lifted-copy"
835+ , "dph-lifted-vseg"
836+ , "dph-par"
837+ , "dph-prim-par"
838+ , "dph-seq"
839+ , "DPM"
840+ , "drClickOn"
841+ , "DrHylo"
842+ , "DrIFT"
843+ , "DrIFT-cabalized"
844+ , "dropbox-sdk"
845+ , "dropsolve"
846+ , "ds-kanren"
847+ , "dsmc"
848+ , "dsmc-tools"
849+ , "dsp"
850+ , "DSTM"
851+ , "dstring"
852+ , "dtab"
853+ , "DTC"
854+ , "dtd"
855+ , "dtd-text"
856+ , "dtd-types"
857+ , "dtw"
858+ , "duplo"
859+ , "Dust"
860+ , "Dust-crypto"
861+ , "Dust-tools"
862+ , "Dust-tools-pcap"
863+ , "dvda"
864+ , "dvdread"
865+ , "dx9base"
866+ , "dx9d3d"
867+ , "dx9d3dx"
868+ , "dynamic-object"
869+ , "dynamic-plot"
870+ , "dynamic-pp"
871+ , "DynamicTimeWarp"
872+ , "dynobud"
873+ , "DysFRP-Cairo"
874+ , "DysFRP-Craftwerk"
875+ , "easy-api"
876+ , "easyjson"
877+ , "easyplot"
878+ , "easyrender"
879+ , "ecdsa"
880+ , "ecu"
881+ , "ed25519"
882+ , "edenmodules"
883+ , "edenskel"
884+ , "edentv"
885+ , "edge"
886+ , "EdisonCore"
887+ , "editable"
888+ , "edit-lenses"
889+ , "editline"
890+ , "EditTimeReport"
891+ , "EEConfig"
892+ , "effective-aspects"
893+ , "effective-aspects-mzv"
894+ , "effect-monad"
895+ , "egison-quote"
896+ , "ehaskell"
897+ , "ehs"
898+ , "eibd-client-simple"
899+ , "eithers"
900+ , "EitherT"
901+ , "Elm"
902+ , "elm-build-lib"
903+ , "elm-compiler"
904+ , "elm-get"
905+ , "elm-make"
906+ , "elm-package"
907+ , "elm-reactor"
908+ , "elm-repl"
909+ , "elm-server"
910+ , "elm-yesod"
911+ , "email"
912+ , "email-header"
913+ , "email-postmark"
914+ , "embeddock"
915+ , "embeddock-example"
916+ , "embroidery"
917+ , "emgm"
918+ , "Emping"
919+ , "empty"
920+ , "Encode"
921+ , "enumfun"
922+ , "EnumMap"
923+ , "enummapmap"
924+ , "env-parser"
925+ , "epoll"
926+ , "epubname"
927+ , "Eq"
928+ , "equational-reasoning"
929+ , "erlang"
930+ , "eros-client"
931+ , "error-message"
932+ , "ersatz"
933+ , "ersatz-toysat"
934+ , "esotericbot"
935+ , "EsounD"
936+ , "estimators"
937+ , "estreps"
938+ , "Etage"
939+ , "Etage-Graph"
940+ , "EtaMOO"
941+ , "eternal"
942+ , "Eternal10Seconds"
943+ , "Etherbunny"
944+ , "ethereum-client-haskell"
945+ , "ethereum-merkle-patricia-db"
946+ , "euphoria"
947+ , "eurofxref"
948+ , "Euterpea"
949+ , "event-driven"
950+ , "event-monad"
951+ , "EventSocket"
952+ , "every-bit-counts"
953+ , "ewe"
954+ , "exif"
955+ , "exists"
956+ , "expand"
957+ , "expat-enumerator"
958+ , "explain"
959+ , "explicit-sharing"
960+ , "explore"
961+ , "exposed-containers"
962+ , "exp-pairs"
963+ , "extcore"
964+ , "extemp"
965+ , "extended-categories"
966+ , "external-sort"
967+ , "ez-couch"
968+ , "faceted"
969+ , "factual-api"
970+ , "FailureT"
971+ , "fallingblocks"
972+ , "falling-turnip"
973+ , "fastirc"
974+ , "fast-tags"
975+ , "fault-tree"
976+ , "fay-hsx"
977+ , "fcd"
978+ , "fckeditor"
979+ , "FComp"
980+ , "fdo-trash"
981+ , "feed2lj"
982+ , "feed2twitter"
983+ , "feed-cli"
984+ , "feldspar-compiler"
985+ , "feldspar-language"
986+ , "fences"
987+ , "fenfire"
988+ , "FermatsLastMargin"
989+ , "FerryCore"
990+ , "ffeed"
991+ , "ffmpeg-tutorials"
992+ , "fibon"
993+ , "fields"
994+ , "FieldTrip"
995+ , "fieldwise"
996+ , "FileManip"
997+ , "FileManipCompat"
998+ , "FileSystem"
999+ , "filesystem-conduit"
1000+ , "filesystem-enumerator"
1001+ , "Finance-Quote-Yahoo"
1002+ , "Finance-Treasury"
1003+ , "find-conduit"
1004+ , "FiniteMap"
1005+ , "firstify"
1006+ , "FirstOrderTheory"
1007+ , "fit"
1008+ , "fitsio"
1009+ , "fixed-point"
1010+ , "fixed-point-vector"
1011+ , "fixed-point-vector-space"
1012+ , "fixed-precision"
1013+ , "fixed-storable-array"
1014+ , "fix-parser-simple"
1015+ , "fixplate"
1016+ , "fix-symbols-gitit"
1017+ , "flexiwrap"
1018+ , "flexiwrap-smallcheck"
1019+ , "flickr"
1020+ , "Flippi"
1021+ , "flite"
1022+ , "flo"
1023+ , "floating-bits"
1024+ , "flow2dot"
1025+ , "flowdock-api"
1026+ , "flower"
1027+ , "flowlocks-framework"
1028+ , "flowsim"
1029+ , "FModExRaw"
1030+ , "FM-SBLEX"
1031+ , "foldl-incremental"
1032+ , "folds"
1033+ , "folds-common"
1034+ , "follower"
1035+ , "Folly"
1036+ , "foma"
1037+ , "font-opengl-basic4x6"
1038+ , "foo"
1039+ , "forbidden-fruit"
1040+ , "fordo"
1041+ , "for-free"
1042+ , "formal"
1043+ , "format"
1044+ , "format-status"
1045+ , "forml"
1046+ , "formlets"
1047+ , "formlets-hsp"
1048+ , "ForSyDe"
1049+ , "forth-hll"
1050+ , "Foster"
1051+ , "fpco-api"
1052+ , "fpnla-examples"
1053+ , "FPretty"
1054+ , "frag"
1055+ , "franchise"
1056+ , "Frank"
1057+ , "free-game"
1058+ , "freekick2"
1059+ , "freenect"
1060+ , "free-operational"
1061+ , "freesect"
1062+ , "freesound"
1063+ , "free-theorems"
1064+ , "free-theorems-counterexamples"
1065+ , "free-theorems-seq"
1066+ , "free-theorems-seq-webui"
1067+ , "free-theorems-webui"
1068+ , "FreeTypeGL"
1069+ , "frp-arduino"
1070+ , "fs-events"
1071+ , "fsmActions"
1072+ , "fswatcher"
1073+ , "ftdi"
1074+ , "ftp-conduit"
1075+ , "ftshell"
1076+ , "full-sessions"
1077+ , "fullstop"
1078+ , "functional-arrow"
1079+ , "function-combine"
1080+ , "functor-apply"
1081+ , "functorm"
1082+ , "funion"
1083+ , "funsat"
1084+ , "future"
1085+ , "fuzzytime"
1086+ , "gact"
1087+ , "gameclock"
1088+ , "game-of-life"
1089+ , "Ganymede"
1090+ , "gc-monitoring-wai"
1091+ , "gdiff-ig"
1092+ , "gdiff-th"
1093+ , "geek"
1094+ , "geek-server"
1095+ , "gemstone"
1096+ , "gencheck"
1097+ , "gender"
1098+ , "genders"
1099+ , "general-prelude"
1100+ , "GeneralTicTacToe"
1101+ , "generators"
1102+ , "generic-church"
1103+ , "genericserialize"
1104+ , "generic-storable"
1105+ , "generic-xml"
1106+ , "genetics"
1107+ , "GenI"
1108+ , "geniconvert"
1109+ , "geni-gui"
1110+ , "geniserver"
1111+ , "geni-util"
1112+ , "GenSmsPdu"
1113+ , "geodetics"
1114+ , "GeoIp"
1115+ , "GeomPredicates-SSE"
1116+ , "getemx"
1117+ , "getflag"
1118+ , "ggtsTC"
1119+ , "ghc-dup"
1120+ , "ghc-events-analyze"
1121+ , "ghc-events-parallel"
1122+ , "ghc-exactprint"
1123+ , "ghci-haskeline"
1124+ , "ghci-ng"
1125+ , "ghclive"
1126+ , "ghc-parmake"
1127+ , "ghc-pkg-autofix"
1128+ , "ghc-pkg-lib"
1129+ , "ghc-server"
1130+ , "ghc-syb"
1131+ , "GHood"
1132+ , "ght"
1133+ , "ginsu"
1134+ , "gipeda"
1135+ , "gist"
1136+ , "git-all"
1137+ , "git-checklist"
1138+ , "git-date"
1139+ , "gitdo"
1140+ , "git-gpush"
1141+ , "gitlib-cross"
1142+ , "gitlib-libgit2"
1143+ , "gitlib-s3"
1144+ , "gitlib-utils"
1145+ , "git-monitor"
1146+ , "git-repair"
1147+ , "gitson"
1148+ , "glade"
1149+ , "gladexml-accessor"
1150+ , "GLFW-OGL"
1151+ , "glider-nlp"
1152+ , "global"
1153+ , "glome-hs"
1154+ , "GlomeTrace"
1155+ , "GlomeView"
1156+ , "gloss-devil"
1157+ , "gmap"
1158+ , "gmndl"
1159+ , "gnome-desktop"
1160+ , "gnome-keyring"
1161+ , "gnomevfs"
1162+ , "g-npm"
1163+ , "goa"
1164+ , "goatee"
1165+ , "goatee-gtk"
1166+ , "gofer-prelude"
1167+ , "google-drive"
1168+ , "google-html5-slide"
1169+ , "google-mail-filters"
1170+ , "googleplus"
1171+ , "GoogleSB"
1172+ , "google-search"
1173+ , "gopherbot"
1174+ , "gpah"
1175+ , "GPipe"
1176+ , "GPipe-Collada"
1177+ , "GPipe-Examples"
1178+ , "GPipe-TextureLoad"
1179+ , "gps"
1180+ , "gps2htmlReport"
1181+ , "GPX"
1182+ , "gpx-conduit"
1183+ , "grapefruit-examples"
1184+ , "grapefruit-frp"
1185+ , "grapefruit-records"
1186+ , "grapefruit-ui"
1187+ , "grapefruit-ui-gtk"
1188+ , "Graph500"
1189+ , "graphbuilder"
1190+ , "GraphHammer"
1191+ , "GraphHammer-examples"
1192+ , "graphicsFormats"
1193+ , "graphics-formats-collada"
1194+ , "graphicstools"
1195+ , "graph-rewriting"
1196+ , "graph-rewriting-cl"
1197+ , "graph-rewriting-gl"
1198+ , "graph-rewriting-lambdascope"
1199+ , "graph-rewriting-layout"
1200+ , "graph-rewriting-ski"
1201+ , "graph-rewriting-strategies"
1202+ , "graph-rewriting-trs"
1203+ , "graph-rewriting-ww"
1204+ , "graphtype"
1205+ , "graph-utils"
1206+ , "greencard"
1207+ , "greencard-lib"
1208+ , "greg-client"
1209+ , "Grempa"
1210+ , "gridland"
1211+ , "grm"
1212+ , "Grow"
1213+ , "GrowlNotify"
1214+ , "gruff"
1215+ , "gruff-examples"
1216+ , "gsl-random"
1217+ , "gsl-random-fu"
1218+ , "gsmenu"
1219+ , "gstreamer"
1220+ , "GTALib"
1221+ , "gtfs"
1222+ , "gtk2hs-cast-glade"
1223+ , "gtk2hs-cast-gnomevfs"
1224+ , "gtk2hs-cast-gtk"
1225+ , "gtk2hs-cast-gtkglext"
1226+ , "Gtk2hsGenerics"
1227+ , "gtk2hs-rpn"
1228+ , "gtk3-mac-integration"
1229+ , "gtkglext"
1230+ , "GtkGLTV"
1231+ , "gtkimageview"
1232+ , "gtk-mac-integration"
1233+ , "gtkrsync"
1234+ , "gtk-serialized-event"
1235+ , "gtk-toy"
1236+ , "guess-combinator"
1237+ , "GuiHaskell"
1238+ , "GuiTV"
1239+ , "h2048"
1240+ , "haar"
1241+ , "Hach"
1242+ , "hack2-handler-happstack-server"
1243+ , "hack2-handler-mongrel2-http"
1244+ , "hack2-handler-warp"
1245+ , "hack2-interface-wai"
1246+ , "hackage2hwn"
1247+ , "hackage2twitter"
1248+ , "hackage-mirror"
1249+ , "hackage-proxy"
1250+ , "hackage-server"
1251+ , "hackage-sparks"
1252+ , "hack-contrib"
1253+ , "hack-contrib-press"
1254+ , "hackernews"
1255+ , "hack-frontend-happstack"
1256+ , "hack-handler-epoll"
1257+ , "hack-handler-evhttp"
1258+ , "hack-handler-fastcgi"
1259+ , "hack-handler-happstack"
1260+ , "hack-handler-hyena"
1261+ , "hack-handler-kibro"
1262+ , "hack-handler-simpleserver"
1263+ , "HackMail"
1264+ , "hack-middleware-cleanpath"
1265+ , "hack-middleware-clientsession"
1266+ , "hack-middleware-jsonp"
1267+ , "hackport"
1268+ , "hactor"
1269+ , "haddock-leksah"
1270+ , "haddocset"
1271+ , "haggis"
1272+ , "Haggressive"
1273+ , "hairy"
1274+ , "hakaru"
1275+ , "hakismet"
1276+ , "hakyll-blaze-templates"
1277+ , "hakyll-contrib"
1278+ , "hakyll-contrib-links"
1279+ , "hakyll-convert"
1280+ , "hakyll-elm"
1281+ , "hakyll-R"
1282+ , "halberd"
1283+ , "HaLeX"
1284+ , "halfs"
1285+ , "halipeto"
1286+ , "halive"
1287+ , "hampp"
1288+ , "hamtmap"
1289+ , "hamusic"
1290+ , "handle-like"
1291+ , "hans"
1292+ , "hans-pcap"
1293+ , "happindicator"
1294+ , "happindicator3"
1295+ , "happraise"
1296+ , "HAppS-Data"
1297+ , "HAppSHelpers"
1298+ , "happs-hsp"
1299+ , "happs-hsp-template"
1300+ , "HAppS-IxSet"
1301+ , "HAppS-Server"
1302+ , "HAppS-State"
1303+ , "happstack-auth"
1304+ , "happstack-contrib"
1305+ , "happstack-data"
1306+ , "happstack-dlg"
1307+ , "happstack-facebook"
1308+ , "happstack-fay"
1309+ , "happstack-foundation"
1310+ , "happstack-heist"
1311+ , "happstack-helpers"
1312+ , "happstack-hsp"
1313+ , "happstack-ixset"
1314+ , "happstack-monad-peel"
1315+ , "happstack-plugins"
1316+ , "happstack-state"
1317+ , "happstack-util"
1318+ , "happstack-yui"
1319+ , "happs-tutorial"
1320+ , "HAppS-Util"
1321+ , "happybara"
1322+ , "happybara-webkit"
1323+ , "happybara-webkit-server"
1324+ , "harchive"
1325+ , "hark"
1326+ , "HARM"
1327+ , "HarmTrace"
1328+ , "HarmTrace-Base"
1329+ , "has"
1330+ , "hascal"
1331+ , "hascat"
1332+ , "hascat-lib"
1333+ , "hascat-setup"
1334+ , "hascat-system"
1335+ , "Haschoo"
1336+ , "HasGP"
1337+ , "hash"
1338+ , "hashable-generics"
1339+ , "hashed-storage"
1340+ , "Hashell"
1341+ , "hasim"
1342+ , "hask"
1343+ , "haskanoid"
1344+ , "haskarrow"
1345+ , "haskeem"
1346+ , "haskeline-class"
1347+ , "haskell2010"
1348+ , "haskell98"
1349+ , "haskell-aliyun"
1350+ , "haskell-awk"
1351+ , "haskell-bcrypt"
1352+ , "haskell-brainfuck"
1353+ , "haskell-cnc"
1354+ , "haskell-course-preludes"
1355+ , "haskelldb-connect-hdbc"
1356+ , "haskelldb-connect-hdbc-catchio-mtl"
1357+ , "haskelldb-connect-hdbc-catchio-tf"
1358+ , "haskelldb-connect-hdbc-catchio-transformers"
1359+ , "haskelldb-connect-hdbc-lifted"
1360+ , "haskelldb-dynamic"
1361+ , "haskelldb-hdbc"
1362+ , "haskelldb-hdbc-mysql"
1363+ , "haskelldb-hdbc-odbc"
1364+ , "haskelldb-hdbc-postgresql"
1365+ , "haskelldb-hdbc-sqlite3"
1366+ , "haskelldb-hsql"
1367+ , "haskelldb-hsql-mysql"
1368+ , "haskelldb-hsql-odbc"
1369+ , "haskelldb-hsql-postgresql"
1370+ , "haskelldb-hsql-sqlite3"
1371+ , "haskelldb-wx"
1372+ , "haskell-docs"
1373+ , "haskell-formatter"
1374+ , "haskell-ftp"
1375+ , "haskell-in-space"
1376+ , "haskell-neo4j-client"
1377+ , "HaskellNN"
1378+ , "Haskelloids"
1379+ , "haskell-openflow"
1380+ , "haskell-pdf-presenter"
1381+ , "haskell-platform-test"
1382+ , "haskell-plot"
1383+ , "haskell-reflect"
1384+ , "haskell-rules"
1385+ , "haskellscrabble"
1386+ , "haskell-src-meta-mwotton"
1387+ , "HaskellTorrent"
1388+ , "haskell-type-exts"
1389+ , "haskell-tyrant"
1390+ , "haskell-xmpp"
1391+ , "haskelm"
1392+ , "haskgame"
1393+ , "haskheap"
1394+ , "haskhol-core"
1395+ , "hask-home"
1396+ , "haskmon"
1397+ , "haskoin"
1398+ , "haskoin-crypto"
1399+ , "haskoin-protocol"
1400+ , "haskoin-script"
1401+ , "haskoin-util"
1402+ , "haskoin-wallet"
1403+ , "haskoon"
1404+ , "haskoon-httpspec"
1405+ , "haskoon-salvia"
1406+ , "haskore"
1407+ , "haskore-realtime"
1408+ , "haskore-supercollider"
1409+ , "haskore-synthesizer"
1410+ , "haskore-vintage"
1411+ , "haslo"
1412+ , "hasloGUI"
1413+ , "hasparql-client"
1414+ , "hastache-aeson"
1415+ , "haste-compiler"
1416+ , "haste-perch"
1417+ , "has-th"
1418+ , "hatex-guide"
1419+ , "HaTeX-meta"
1420+ , "haverer"
1421+ , "HaVSA"
1422+ , "hawitter"
1423+ , "Hawk"
1424+ , "haxparse"
1425+ , "hayland"
1426+ , "Hayoo"
1427+ , "hayoo-cli"
1428+ , "hback"
1429+ , "hbayes"
1430+ , "hBDD-CMUBDD"
1431+ , "hBDD-CUDD"
1432+ , "hbeat"
1433+ , "hblas"
1434+ , "hblock"
1435+ , "h-booru"
1436+ , "hburg"
1437+ , "HCard"
1438+ , "hcheat"
1439+ , "hchesslib"
1440+ , "HCL"
1441+ , "hcron"
1442+ , "hCsound"
1443+ , "hcube"
1444+ , "hcwiid"
1445+ , "hdaemonize-buildfix"
1446+ , "HDBC-mysql"
1447+ , "hdbi"
1448+ , "hdbi-conduit"
1449+ , "hdbi-postgresql"
1450+ , "hdbi-sqlite"
1451+ , "hdbi-tests"
1452+ , "hDFA"
1453+ , "hdigest"
1454+ , "hdirect"
1455+ , "hdis86"
1456+ , "hdiscount"
1457+ , "hdm"
1458+ , "hdph"
1459+ , "hdph-closure"
1460+ , "HDRUtils"
1461+ , "hecc"
1462+ , "Hedi"
1463+ , "hedn"
1464+ , "heist-aeson"
1465+ , "helics"
1466+ , "helics-wai"
1467+ , "helium"
1468+ , "hell"
1469+ , "hellage"
1470+ , "hellnet"
1471+ , "helm"
1472+ , "hemkay"
1473+ , "hemokit"
1474+ , "hen"
1475+ , "henet"
1476+ , "hepevt"
1477+ , "HERA"
1478+ , "herbalizer"
1479+ , "her-lexer"
1480+ , "her-lexer-parsec"
1481+ , "Hermes"
1482+ , "hermit"
1483+ , "hermit-syb"
1484+ , "herringbone"
1485+ , "herringbone-embed"
1486+ , "herringbone-wai"
1487+ , "hesql"
1488+ , "hetris"
1489+ , "heukarya"
1490+ , "hevolisa"
1491+ , "hevolisa-dph"
1492+ , "hexpat-iteratee"
1493+ , "hexpat-pickle-generic"
1494+ , "hexquote"
1495+ , "hF2"
1496+ , "hfann"
1497+ , "hfd"
1498+ , "hfiar"
1499+ , "hfractal"
1500+ , "hfsevents"
1501+ , "hfusion"
1502+ , "hgalib"
1503+ , "HGamer3D"
1504+ , "HGamer3D-API"
1505+ , "HGamer3D-Audio"
1506+ , "HGamer3D-CAudio-Binding"
1507+ , "HGamer3D-CEGUI-Binding"
1508+ , "HGamer3D-Enet-Binding"
1509+ , "HGamer3D-Graphics3D"
1510+ , "HGamer3D-GUI"
1511+ , "HGamer3D-InputSystem"
1512+ , "HGamer3D-Network"
1513+ , "HGamer3D-Ogre-Binding"
1514+ , "HGamer3D-OIS-Binding"
1515+ , "HGamer3D-SDL2-Binding"
1516+ , "HGamer3D-SFML-Binding"
1517+ , "HGamer3D-WinEvent"
1518+ , "HGamer3D-Wire"
1519+ , "hg-buildpackage"
1520+ , "hgen"
1521+ , "hgeometric"
1522+ , "hgithub"
1523+ , "HGL"
1524+ , "hgom"
1525+ , "h-gpgme"
1526+ , "HGraphStorage"
1527+ , "hharp"
1528+ , "HHDL"
1529+ , "hiccup"
1530+ , "hichi"
1531+ , "hieraclus"
1532+ , "hierarchical-clustering-diagrams"
1533+ , "hiernotify"
1534+ , "Hieroglyph"
1535+ , "HiggsSet"
1536+ , "higherorder"
1537+ , "highWaterMark"
1538+ , "himg"
1539+ , "himpy"
1540+ , "hinduce-classifier"
1541+ , "hinduce-classifier-decisiontree"
1542+ , "hinduce-examples"
1543+ , "hinvaders"
1544+ , "hinze-streams"
1545+ , "hipbot"
1546+ , "hircules"
1547+ , "hirt"
1548+ , "hissmetrics"
1549+ , "historian"
1550+ , "hist-pl"
1551+ , "hist-pl-fusion"
1552+ , "hist-pl-lmf"
1553+ , "hjs"
1554+ , "HJVM"
1555+ , "hlatex"
1556+ , "hlbfgsb"
1557+ , "hlcm"
1558+ , "HLearn-algebra"
1559+ , "HLearn-datastructures"
1560+ , "hledger-chart"
1561+ , "hledger-vty"
1562+ , "hlibev"
1563+ , "hlibfam"
1564+ , "HListPP"
1565+ , "hlogger"
1566+ , "HLogger"
1567+ , "hly"
1568+ , "HMap"
1569+ , "hmark"
1570+ , "hmarkup"
1571+ , "hmatrix-banded"
1572+ , "hmatrix-gsl-stats"
1573+ , "hmatrix-quadprogpp"
1574+ , "hmatrix-static"
1575+ , "hmatrix-syntax"
1576+ , "hmatrix-tests"
1577+ , "hmeap"
1578+ , "hmeap-utils"
1579+ , "hmenu"
1580+ , "hmk"
1581+ , "HMM"
1582+ , "hmm-hmatrix"
1583+ , "hMollom"
1584+ , "hmp3"
1585+ , "Hmpf"
1586+ , "hmpfr"
1587+ , "hmumps"
1588+ , "HNM"
1589+ , "hnn"
1590+ , "hoauth"
1591+ , "hob"
1592+ , "hobbes"
1593+ , "hobbits"
1594+ , "HODE"
1595+ , "hofix-mtl"
1596+ , "hog"
1597+ , "hogg"
1598+ , "hogre"
1599+ , "hogre-examples"
1600+ , "hois"
1601+ , "hole"
1602+ , "holey-format"
1603+ , "Holumbus-Distribution"
1604+ , "Holumbus-MapReduce"
1605+ , "Holumbus-Searchengine"
1606+ , "Holumbus-Storage"
1607+ , "homeomorphic"
1608+ , "hommage"
1609+ , "hommage-ds"
1610+ , "HongoDB"
1611+ , "honi"
1612+ , "hoodie"
1613+ , "hoodle"
1614+ , "hoodle-builder"
1615+ , "hoodle-core"
1616+ , "hoodle-extra"
1617+ , "hoodle-parser"
1618+ , "hoodle-publish"
1619+ , "hoodle-render"
1620+ , "hoodle-types"
1621+ , "hood-off"
1622+ , "hoovie"
1623+ , "hopencc"
1624+ , "hopencl"
1625+ , "hOpenPGP"
1626+ , "hopfield"
1627+ , "hoq"
1628+ , "hosts-server"
1629+ , "hotswap"
1630+ , "hp2any-core"
1631+ , "hp2any-graph"
1632+ , "hp2any-manager"
1633+ , "hpage"
1634+ , "hpapi"
1635+ , "hpaste"
1636+ , "hpasteit"
1637+ , "HPath"
1638+ , "hpc-coveralls"
1639+ , "hpc-tracer"
1640+ , "hPDB-examples"
1641+ , "HPDF"
1642+ , "hplayground"
1643+ , "hplaylist"
1644+ , "HPlot"
1645+ , "hpodder"
1646+ , "HPong"
1647+ , "hprotoc-fork"
1648+ , "hps-cairo"
1649+ , "hpygments"
1650+ , "hpylos"
1651+ , "hR"
1652+ , "hranker"
1653+ , "HRay"
1654+ , "Hricket"
1655+ , "HROOT"
1656+ , "HROOT-core"
1657+ , "HROOT-graf"
1658+ , "HROOT-hist"
1659+ , "HROOT-io"
1660+ , "HROOT-math"
1661+ , "hs2bf"
1662+ , "hs2dot"
1663+ , "Hs2lib"
1664+ , "hsbackup"
1665+ , "hsc2hs"
1666+ , "hsc3-cairo"
1667+ , "hsc3-data"
1668+ , "hsc3-forth"
1669+ , "hsc3-graphs"
1670+ , "hsc3-lang"
1671+ , "hsc3-lisp"
1672+ , "hsc3-plot"
1673+ , "hsc3-rec"
1674+ , "hsc3-server"
1675+ , "hsc3-unsafe"
1676+ , "hscamwire"
1677+ , "hs-carbon-examples"
1678+ , "hscassandra"
1679+ , "hs-cdb"
1680+ , "hsclock"
1681+ , "hscurses-fish-ex"
1682+ , "hsdip"
1683+ , "hsdns-cache"
1684+ , "hs-dotnet"
1685+ , "Hsed"
1686+ , "hsfacter"
1687+ , "HSFFIG"
1688+ , "hs-ffmpeg"
1689+ , "hs-fltk"
1690+ , "hs-gchart"
1691+ , "hs-GeoIP"
1692+ , "HSGEP"
1693+ , "hsgnutls"
1694+ , "hsgnutls-yj"
1695+ , "hsgsom"
1696+ , "HsHaruPDF"
1697+ , "HSHHelpers"
1698+ , "HsHyperEstraier"
1699+ , "hsignal"
1700+ , "hSimpleDB"
1701+ , "hs-java"
1702+ , "hs-json-rpc"
1703+ , "HsJudy"
1704+ , "hskeleton"
1705+ , "hslackbuilder"
1706+ , "hslibsvm"
1707+ , "hslogger4j"
1708+ , "hs-logo"
1709+ , "hslogstash"
1710+ , "hsmagick"
1711+ , "HSmarty"
1712+ , "hs-mesos"
1713+ , "Hsmtlib"
1714+ , "hsmtpclient"
1715+ , "hsndfile-storablevector"
1716+ , "hsnock"
1717+ , "hs-nombre-generator"
1718+ , "hsns"
1719+ , "hsntp"
1720+ , "hsoptions"
1721+ , "HSoundFile"
1722+ , "hsparql"
1723+ , "HsParrot"
1724+ , "hsp-cgi"
1725+ , "hspear"
1726+ , "hspec-experimental"
1727+ , "hspec-shouldbe"
1728+ , "HsPerl5"
1729+ , "hs-pgms"
1730+ , "hs-pkpass"
1731+ , "hspread"
1732+ , "hspresent"
1733+ , "hsprocess"
1734+ , "hsql-mysql"
1735+ , "hsqml-datamodel"
1736+ , "hsqml-demo-morris"
1737+ , "hsqml-demo-samples"
1738+ , "hsqml-morris"
1739+ , "hsSqlite3"
1740+ , "HsSVN"
1741+ , "hstatistics"
1742+ , "hstats"
1743+ , "hstest"
1744+ , "hstidy"
1745+ , "hstorchat"
1746+ , "hstradeking"
1747+ , "HStringTemplateHelpers"
1748+ , "hs-twitter"
1749+ , "hs-twitterarchiver"
1750+ , "hstyle"
1751+ , "hstzaar"
1752+ , "hsubconvert"
1753+ , "hs-vcard"
1754+ , "HSvm"
1755+ , "hswip"
1756+ , "hsx"
1757+ , "hsXenCtrl"
1758+ , "hsx-jmacro"
1759+ , "hsx-xhtml"
1760+ , "hsyscall"
1761+ , "hszephyr"
1762+ , "HTab"
1763+ , "hTalos"
1764+ , "hTensor"
1765+ , "HTicTacToe"
1766+ , "html-entities"
1767+ , "htoml"
1768+ , "htsn-import"
1769+ , "http-client-request-modifiers"
1770+ , "http-conduit-browser"
1771+ , "http-conduit-downloader"
1772+ , "http-enumerator"
1773+ , "http-monad"
1774+ , "http-proxy"
1775+ , "https-everywhere-rules"
1776+ , "http-shed"
1777+ , "HTTP-Simple"
1778+ , "httpspec"
1779+ , "http-test"
1780+ , "htune"
1781+ , "hubris"
1782+ , "hugs2yc"
1783+ , "hulk"
1784+ , "hums"
1785+ , "HUnit-Diff"
1786+ , "hunit-gui"
1787+ , "HUnit-Plus"
1788+ , "hunit-rematch"
1789+ , "hunt-searchengine"
1790+ , "hurdle"
1791+ , "husk-scheme"
1792+ , "husk-scheme-libs"
1793+ , "husky"
1794+ , "hutton"
1795+ , "huzzy"
1796+ , "hVOIDP"
1797+ , "hws"
1798+ , "HXMPP"
1799+ , "hxmppc"
1800+ , "hxournal"
1801+ , "HXQ"
1802+ , "hxt-binary"
1803+ , "hxt-filter"
1804+ , "hxthelper"
1805+ , "hxweb"
1806+ , "hybrid"
1807+ , "hydra-hs"
1808+ , "hydrogen-cli-args"
1809+ , "hydrogen-data"
1810+ , "hydrogen-parsing"
1811+ , "hydrogen-prelude"
1812+ , "hydrogen-prelude-parsec"
1813+ , "hydrogen-util"
1814+ , "hyena"
1815+ , "hylolib"
1816+ , "hylotab"
1817+ , "hyloutils"
1818+ , "hyperdrive"
1819+ , "hyperpublic"
1820+ , "hypher"
1821+ , "i18n"
1822+ , "iban"
1823+ , "ideas"
1824+ , "ideas-math"
1825+ , "ide-backend-server"
1826+ , "idiii"
1827+ , "idna2008"
1828+ , "IDynamic"
1829+ , "ieee-utils"
1830+ , "iException"
1831+ , "IFS"
1832+ , "ige-mac-integration"
1833+ , "igraph"
1834+ , "ihaskell"
1835+ , "ihaskell-aeson"
1836+ , "ihaskell-basic"
1837+ , "ihaskell-blaze"
1838+ , "ihaskell-charts"
1839+ , "ihaskell-display"
1840+ , "ihaskell-hatex"
1841+ , "ihaskell-juicypixels"
1842+ , "ihaskell-magic"
1843+ , "ihaskell-parsec"
1844+ , "ihaskell-plot"
1845+ , "ihaskell-rlangqq"
1846+ , "ihttp"
1847+ , "illuminate"
1848+ , "imagepaste"
1849+ , "imbib"
1850+ , "imgurder"
1851+ , "imm"
1852+ , "imparse"
1853+ , "ImperativeHaskell"
1854+ , "implicit"
1855+ , "improve"
1856+ , "INblobs"
1857+ , "inch"
1858+ , "include-file"
1859+ , "incremental-computing"
1860+ , "incremental-sat-solver"
1861+ , "increments"
1862+ , "index-core"
1863+ , "indices"
1864+ , "infer-upstream"
1865+ , "infinity"
1866+ , "infix"
1867+ , "InfixApplicative"
1868+ , "inflist"
1869+ , "informative"
1870+ , "inilist"
1871+ , "instant-zipper"
1872+ , "integer-pure"
1873+ , "intel-aes"
1874+ , "interleavableGen"
1875+ , "interleavableIO"
1876+ , "internetmarke"
1877+ , "interpolatedstring-qq"
1878+ , "interpolatedstring-qq-mwotton"
1879+ , "intricacy"
1880+ , "intset"
1881+ , "IOR"
1882+ , "io-reactive"
1883+ , "IORefCAS"
1884+ , "iotransaction"
1885+ , "ipatch"
1886+ , "ipc"
1887+ , "ipopt-hs"
1888+ , "iptables-helpers"
1889+ , "iptadmin"
1890+ , "Irc"
1891+ , "ircbouncer"
1892+ , "ireal"
1893+ , "IrrHaskell"
1894+ , "isevaluated"
1895+ , "ismtp"
1896+ , "iteratee"
1897+ , "iteratee-compress"
1898+ , "iteratee-parsec"
1899+ , "iteratee-stm"
1900+ , "iterIO"
1901+ , "iterio-server"
1902+ , "iter-stats"
1903+ , "ivor"
1904+ , "ivory"
1905+ , "ivory-opts"
1906+ , "ivory-quickcheck"
1907+ , "ivory-stdlib"
1908+ , "ivy-web"
1909+ , "ixdopp"
1910+ , "ixset-typed"
1911+ , "iyql"
1912+ , "j2hs"
1913+ , "jack-bindings"
1914+ , "jackminimix"
1915+ , "JackMiniMix"
1916+ , "jalla"
1917+ , "jammittools"
1918+ , "jarfind"
1919+ , "java-bridge"
1920+ , "java-bridge-extras"
1921+ , "java-reflect"
1922+ , "javasf"
1923+ , "Javasf"
1924+ , "javav"
1925+ , "Javav"
1926+ , "jespresso"
1927+ , "jobqueue"
1928+ , "join"
1929+ , "joinlist"
1930+ , "jonathanscard"
1931+ , "jort"
1932+ , "jsc"
1933+ , "JsContracts"
1934+ , "js-good-parts"
1935+ , "jsmw"
1936+ , "json2"
1937+ , "json2-hdbc"
1938+ , "json-b"
1939+ , "JSONb"
1940+ , "JSON-Combinator"
1941+ , "JSON-Combinator-Examples"
1942+ , "json-enumerator"
1943+ , "JsonGrammar"
1944+ , "json-qq"
1945+ , "jsonresume"
1946+ , "json-rpc"
1947+ , "json-tools"
1948+ , "jspath"
1949+ , "judy"
1950+ , "JuicyPixels-repa"
1951+ , "JunkDB-driver-gdbm"
1952+ , "JYU-Utils"
1953+ , "kangaroo"
1954+ , "kansas-comet"
1955+ , "kansas-lava"
1956+ , "kansas-lava-cores"
1957+ , "kansas-lava-papilio"
1958+ , "kansas-lava-shake"
1959+ , "katt"
1960+ , "keera-hails-mvc-model-lightmodel"
1961+ , "keera-hails-reactive-fs"
1962+ , "keera-posture"
1963+ , "keiretsu"
1964+ , "Ketchup"
1965+ , "kevin"
1966+ , "keyring"
1967+ , "keystore"
1968+ , "kibro"
1969+ , "kicad-data"
1970+ , "kickass-torrents-dump-parser"
1971+ , "KiCS"
1972+ , "KiCS-debugger"
1973+ , "KiCS-prophecy"
1974+ , "kif-parser"
1975+ , "kit"
1976+ , "kmeans-par"
1977+ , "koellner-phonetic"
1978+ , "Konf"
1979+ , "korfu"
1980+ , "kqueue"
1981+ , "kure-your-boilerplate"
1982+ , "KyotoCabinet"
1983+ , "labeled-graph"
1984+ , "labyrinth"
1985+ , "labyrinth-server"
1986+ , "laika"
1987+ , "lambda2js"
1988+ , "lambdaBase"
1989+ , "lambdabot-utils"
1990+ , "lambda-bridge"
1991+ , "LambdaCalculator"
1992+ , "lambdacat"
1993+ , "lambdacube"
1994+ , "lambdacube-bullet"
1995+ , "lambdacube-engine"
1996+ , "lambdacube-examples"
1997+ , "lambdacube-samples"
1998+ , "lambda-devs"
1999+ , "lambdaFeed"
2000+ , "LambdaINet"
2001+ , "lambdaLit"
2002+ , "LambdaPrettyQuote"
2003+ , "LambdaShell"
2004+ , "lambda-toolbox"
2005+ , "lambdatwit"
2006+ , "lambdiff"
2007+ , "lame-tester"
2008+ , "language-bash"
2009+ , "language-boogie"
2010+ , "language-c-comments"
2011+ , "language-c-inline"
2012+ , "language-eiffel"
2013+ , "language-go"
2014+ , "language-java-classfile"
2015+ , "language-mixal"
2016+ , "language-objc"
2017+ , "language-puppet"
2018+ , "language-python-colour"
2019+ , "language-sh"
2020+ , "language-spelling"
2021+ , "language-sqlite"
2022+ , "language-thrift"
2023+ , "Lastik"
2024+ , "lat"
2025+ , "latest-npm-version"
2026+ , "Lattices"
2027+ , "layers"
2028+ , "layout"
2029+ , "layout-bootstrap"
2030+ , "lazyarray"
2031+ , "lazysplines"
2032+ , "l-bfgs-b"
2033+ , "lcs"
2034+ , "ldap-client"
2035+ , "ldif"
2036+ , "leaf"
2037+ , "leaky"
2038+ , "learn-physics"
2039+ , "learn-physics-examples"
2040+ , "leksah"
2041+ , "Level0"
2042+ , "leveldb-haskell-fork"
2043+ , "levmar-chart"
2044+ , "lgtk"
2045+ , "lha"
2046+ , "lhae"
2047+ , "lhe"
2048+ , "LibClang"
2049+ , "libcspm"
2050+ , "libexpect"
2051+ , "libGenI"
2052+ , "libhbb"
2053+ , "libjenkins"
2054+ , "libltdl"
2055+ , "liboleg"
2056+ , "libpafe"
2057+ , "libpq"
2058+ , "libssh2-conduit"
2059+ , "libsystemd-daemon"
2060+ , "libvirt-hs"
2061+ , "libxml"
2062+ , "libxslt"
2063+ , "lifter"
2064+ , "lighttpd-conf"
2065+ , "lighttpd-conf-qq"
2066+ , "lilypond"
2067+ , "Limit"
2068+ , "limp-cbc"
2069+ , "lin-alg"
2070+ , "linear-algebra-cblas"
2071+ , "linear-maps"
2072+ , "linearscan"
2073+ , "linearscan-hoopl"
2074+ , "LinearSplit"
2075+ , "LinkChecker"
2076+ , "linkchk"
2077+ , "linkcore"
2078+ , "linux-blkid"
2079+ , "linux-kmod"
2080+ , "linux-perf"
2081+ , "linux-ptrace"
2082+ , "lio-eci11"
2083+ , "lio-simple"
2084+ , "liquid-fixpoint"
2085+ , "liquidhaskell"
2086+ , "listlike-instances"
2087+ , "list-t-html-parser"
2088+ , "ListTree"
2089+ , "literals"
2090+ , "live-sequencer"
2091+ , "ll-picosat"
2092+ , "llsd"
2093+ , "llvm-ffi"
2094+ , "llvm-general-quote"
2095+ , "llvm-ht"
2096+ , "local-search"
2097+ , "loch"
2098+ , "log2json"
2099+ , "log-effect"
2100+ , "logic-classes"
2101+ , "LogicGrowsOnTrees"
2102+ , "LogicGrowsOnTrees-MPI"
2103+ , "LogicGrowsOnTrees-network"
2104+ , "LogicGrowsOnTrees-processes"
2105+ , "lojban"
2106+ , "lojbanParser"
2107+ , "lojbanXiragan"
2108+ , "lojysamban"
2109+ , "loli"
2110+ , "loop-effin"
2111+ , "loopy"
2112+ , "lord"
2113+ , "loris"
2114+ , "lostcities"
2115+ , "lscabal"
2116+ , "L-seed"
2117+ , "LslPlus"
2118+ , "ls-usb"
2119+ , "lsystem"
2120+ , "luachunk"
2121+ , "luautils"
2122+ , "lucienne"
2123+ , "Lucu"
2124+ , "lui"
2125+ , "luka"
2126+ , "luthor"
2127+ , "lvish"
2128+ , "lvmlib"
2129+ , "lye"
2130+ , "maam"
2131+ , "mage"
2132+ , "MagicHaskeller"
2133+ , "magma"
2134+ , "mahoro"
2135+ , "majordomo"
2136+ , "majority"
2137+ , "manatee"
2138+ , "manatee-anything"
2139+ , "manatee-browser"
2140+ , "manatee-core"
2141+ , "manatee-curl"
2142+ , "manatee-editor"
2143+ , "manatee-filemanager"
2144+ , "manatee-imageviewer"
2145+ , "manatee-mplayer"
2146+ , "manatee-pdfviewer"
2147+ , "manatee-processmanager"
2148+ , "manatee-reader"
2149+ , "manatee-template"
2150+ , "manatee-terminal"
2151+ , "manatee-welcome"
2152+ , "mandulia"
2153+ , "mangopay"
2154+ , "manifolds"
2155+ , "marionetta"
2156+ , "markdown2svg"
2157+ , "markdown-kate"
2158+ , "markdown-pap"
2159+ , "markov-processes"
2160+ , "markup-preview"
2161+ , "marmalade-upload"
2162+ , "marquise"
2163+ , "marxup"
2164+ , "masakazu-bot"
2165+ , "matchers"
2166+ , "mathblog"
2167+ , "mathgenealogy"
2168+ , "mathlink"
2169+ , "matlab"
2170+ , "matsuri"
2171+ , "maude"
2172+ , "maxent"
2173+ , "maxsharing"
2174+ , "maybench"
2175+ , "MaybeT-monads-tf"
2176+ , "MaybeT-transformers"
2177+ , "MazesOfMonad"
2178+ , "mbox-tools"
2179+ , "MC-Fold-DP"
2180+ , "mcmc-samplers"
2181+ , "mdcat"
2182+ , "Measure"
2183+ , "mecab"
2184+ , "mediawiki"
2185+ , "mediawiki2latex"
2186+ , "mega-sdist"
2187+ , "melody"
2188+ , "memo-sqlite"
2189+ , "MetaObject"
2190+ , "meta-par-accelerate"
2191+ , "metaplug"
2192+ , "metric"
2193+ , "Metrics"
2194+ , "metronome"
2195+ , "MFlow"
2196+ , "Mhailist"
2197+ , "MHask"
2198+ , "microformats2-parser"
2199+ , "mida"
2200+ , "midisurface"
2201+ , "mighttpd"
2202+ , "milena"
2203+ , "mime-directory"
2204+ , "mime-string"
2205+ , "minesweeper"
2206+ , "MiniAgda"
2207+ , "miniball"
2208+ , "miniforth"
2209+ , "minimung"
2210+ , "minioperational"
2211+ , "miniplex"
2212+ , "minirotate"
2213+ , "ministg"
2214+ , "mirror-tweet"
2215+ , "MissingPy"
2216+ , "missing-py2"
2217+ , "mix-arrows"
2218+ , "mkbndl"
2219+ , "mlist"
2220+ , "ml-w"
2221+ , "mmtl"
2222+ , "mmtl-base"
2223+ , "moan"
2224+ , "modelicaparser"
2225+ , "modsplit"
2226+ , "modular-prelude"
2227+ , "modular-prelude-classy"
2228+ , "module-management"
2229+ , "mohws"
2230+ , "monad-abort-fd"
2231+ , "monadacme"
2232+ , "monad-atom"
2233+ , "monad-atom-simple"
2234+ , "monad-bool"
2235+ , "MonadCatchIO-mtl-foreign"
2236+ , "MonadCatchIO-transformers-foreign"
2237+ , "monad-exception"
2238+ , "monadiccp"
2239+ , "monadiccp-gecode"
2240+ , "monad-interleave"
2241+ , "MonadLab"
2242+ , "monad-levels"
2243+ , "monad-lrs"
2244+ , "monad-memo"
2245+ , "monad-mersenne-random"
2246+ , "monad-ran"
2247+ , "MonadRandomLazy"
2248+ , "monad-stlike-io"
2249+ , "monad-stlike-stm"
2250+ , "monad-tx"
2251+ , "monad-unify"
2252+ , "monarch"
2253+ , "Monaris"
2254+ , "Monatron"
2255+ , "Monatron-IO"
2256+ , "mongodb-queue"
2257+ , "mongrel2-handler"
2258+ , "Monocle"
2259+ , "mono-foldable"
2260+ , "monoid-owns"
2261+ , "monoidplus"
2262+ , "monoids"
2263+ , "monte-carlo"
2264+ , "moo"
2265+ , "morfette"
2266+ , "morfeusz"
2267+ , "mosaico-lib"
2268+ , "mount"
2269+ , "mp3decoder"
2270+ , "mpdmate"
2271+ , "mpppc"
2272+ , "mpretty"
2273+ , "mprover"
2274+ , "mps"
2275+ , "mpvguihs"
2276+ , "mqtt-hs"
2277+ , "msgpack-idl"
2278+ , "mtgoxapi"
2279+ , "mtl-tf"
2280+ , "mtlx"
2281+ , "mtp"
2282+ , "mudbath"
2283+ , "multifocal"
2284+ , "multipass"
2285+ , "multiplate-simplified"
2286+ , "multirec-alt-deriver"
2287+ , "multirec-binary"
2288+ , "multisetrewrite"
2289+ , "murder"
2290+ , "murmurhash3"
2291+ , "musicbrainz-email"
2292+ , "music-graphics"
2293+ , "music-parts"
2294+ , "music-preludes"
2295+ , "music-score"
2296+ , "music-sibelius"
2297+ , "music-suite"
2298+ , "music-util"
2299+ , "musicxml"
2300+ , "mustache2hs"
2301+ , "mutable-iter"
2302+ , "mvclient"
2303+ , "mvc-updates"
2304+ , "myo"
2305+ , "mysnapsession"
2306+ , "mysnapsession-example"
2307+ , "mysql-simple-quasi"
2308+ , "mysql-simple-typed"
2309+ , "myTestlll"
2310+ , "mzv"
2311+ , "nagios-plugin-ekg"
2312+ , "named-lock"
2313+ , "nanoAgda"
2314+ , "nano-cryptr"
2315+ , "nanocurses"
2316+ , "nano-hmac"
2317+ , "nano-md5"
2318+ , "nanomsg-haskell"
2319+ , "narc"
2320+ , "nats-queue"
2321+ , "natural-number"
2322+ , "neat"
2323+ , "needle"
2324+ , "nerf"
2325+ , "nero"
2326+ , "nero-wai"
2327+ , "nero-warp"
2328+ , "netcore"
2329+ , "netlines"
2330+ , "NetSNMP"
2331+ , "netspec"
2332+ , "nettle"
2333+ , "nettle-frp"
2334+ , "nettle-netkit"
2335+ , "nettle-openflow"
2336+ , "network-address"
2337+ , "network-anonymous-i2p"
2338+ , "network-builder"
2339+ , "network-bytestring"
2340+ , "network-connection"
2341+ , "network-house"
2342+ , "network-minihttp"
2343+ , "network-rpca"
2344+ , "network-server"
2345+ , "network-simple-tls"
2346+ , "network-topic-models"
2347+ , "network-transport-amqp"
2348+ , "network-websocket"
2349+ , "newports"
2350+ , "newsynth"
2351+ , "newt"
2352+ , "newtype-th"
2353+ , "NGrams"
2354+ , "nibblestring"
2355+ , "nikepub"
2356+ , "Ninjas"
2357+ , "nitro"
2358+ , "nixos-types"
2359+ , "nkjp"
2360+ , "nm"
2361+ , "nme"
2362+ , "nntp"
2363+ , "noise"
2364+ , "Nomyx"
2365+ , "Nomyx-Core"
2366+ , "Nomyx-Language"
2367+ , "Nomyx-Rules"
2368+ , "Nomyx-Web"
2369+ , "nondeterminism"
2370+ , "NonEmptyList"
2371+ , "noodle"
2372+ , "NoSlow"
2373+ , "not-gloss-examples"
2374+ , "notmuch-haskell"
2375+ , "notmuch-web"
2376+ , "np-linear"
2377+ , "nptools"
2378+ , "nthable"
2379+ , "null-canvas"
2380+ , "NumberSieves"
2381+ , "numerals"
2382+ , "numerals-base"
2383+ , "numeric-qq"
2384+ , "nums"
2385+ , "Nussinov78"
2386+ , "nvim-hs"
2387+ , "NXT"
2388+ , "NXTDSL"
2389+ , "nymphaea"
2390+ , "oberon0"
2391+ , "obj"
2392+ , "Object"
2393+ , "ObjectIO"
2394+ , "octopus"
2395+ , "oculus"
2396+ , "ofx"
2397+ , "OGL"
2398+ , "ohloh-hs"
2399+ , "oi"
2400+ , "ois-input-manager"
2401+ , "omaketex"
2402+ , "omega"
2403+ , "Omega"
2404+ , "omnicodec"
2405+ , "on-a-horse"
2406+ , "one-liner"
2407+ , "oneormore"
2408+ , "onu-course"
2409+ , "OpenAFP"
2410+ , "OpenAFP-Utils"
2411+ , "OpenCL"
2412+ , "OpenCLRaw"
2413+ , "opencv-raw"
2414+ , "openexchangerates"
2415+ , "openflow"
2416+ , "OpenGLCheck"
2417+ , "opengles"
2418+ , "openid"
2419+ , "open-pandoc"
2420+ , "openpgp-Crypto"
2421+ , "openpgp-crypto-api"
2422+ , "OpenSCAD"
2423+ , "openssh-github-keys"
2424+ , "opentheory-char"
2425+ , "open-union"
2426+ , "OpenVG"
2427+ , "OpenVGRaw"
2428+ , "open-witness"
2429+ , "Operads"
2430+ , "optimusprime"
2431+ , "OrchestrateDB"
2432+ , "orchid"
2433+ , "orchid-demo"
2434+ , "order-maintenance"
2435+ , "orgmode-parse"
2436+ , "origami"
2437+ , "OSM"
2438+ , "osm-download"
2439+ , "ot"
2440+ , "package-vt"
2441+ , "packedstring"
2442+ , "PageIO"
2443+ , "panda"
2444+ , "PandocAgda"
2445+ , "pandoc-unlit"
2446+ , "papillon"
2447+ , "pappy"
2448+ , "paragon"
2449+ , "Paraiso"
2450+ , "parallel-tasks"
2451+ , "parameterized-data"
2452+ , "parco"
2453+ , "parco-attoparsec"
2454+ , "parconc-examples"
2455+ , "parco-parsec"
2456+ , "Parry"
2457+ , "parsec2"
2458+ , "parse-help"
2459+ , "parsely"
2460+ , "parser-helper"
2461+ , "parsestar"
2462+ , "partial-lens"
2463+ , "partly"
2464+ , "passage"
2465+ , "pastis"
2466+ , "pasty"
2467+ , "Pathfinder"
2468+ , "pathfindingcore"
2469+ , "patterns"
2470+ , "paypal-api"
2471+ , "pb"
2472+ , "PCLT"
2473+ , "PCLT-DB"
2474+ , "pdynload"
2475+ , "peakachu"
2476+ , "pec"
2477+ , "peg"
2478+ , "penny"
2479+ , "penny-bin"
2480+ , "penny-lib"
2481+ , "peparser"
2482+ , "perdure"
2483+ , "PerfectHash"
2484+ , "perm"
2485+ , "permute"
2486+ , "PermuteEffects"
2487+ , "persistent-hssqlppp"
2488+ , "persistent-map"
2489+ , "persistent-protobuf"
2490+ , "pesca"
2491+ , "peyotls"
2492+ , "pez"
2493+ , "pgdl"
2494+ , "pg-harness"
2495+ , "pg-harness-server"
2496+ , "pgsql-simple"
2497+ , "pgstream"
2498+ , "phasechange"
2499+ , "phash"
2500+ , "phone-push"
2501+ , "phooey"
2502+ , "photoname"
2503+ , "phraskell"
2504+ , "Phsu"
2505+ , "phybin"
2506+ , "pianola"
2507+ , "pi-calculus"
2508+ , "picologic"
2509+ , "piet"
2510+ , "piki"
2511+ , "Pipe"
2512+ , "pipes-cereal-plus"
2513+ , "pipes-conduit"
2514+ , "pipes-network-tls"
2515+ , "pipes-p2p-examples"
2516+ , "pisigma"
2517+ , "pit"
2518+ , "pkggraph"
2519+ , "planar-graph"
2520+ , "plat"
2521+ , "plivo"
2522+ , "PlslTools"
2523+ , "plugins"
2524+ , "plugins-auto"
2525+ , "plugins-multistage"
2526+ , "plumbers"
2527+ , "png-file"
2528+ , "pngload"
2529+ , "pngload-fixed"
2530+ , "pocket-dns"
2531+ , "pointless-haskell"
2532+ , "pointless-lenses"
2533+ , "pointless-rewrite"
2534+ , "polh-lexicon"
2535+ , "polyseq"
2536+ , "polytypeable"
2537+ , "polytypeable-utils"
2538+ , "pontarius-mediaserver"
2539+ , "pontarius-xmpp"
2540+ , "pontarius-xpmn"
2541+ , "pool"
2542+ , "pool-conduit"
2543+ , "popenhs"
2544+ , "poppler"
2545+ , "porte"
2546+ , "porter"
2547+ , "ports"
2548+ , "posix-acl"
2549+ , "posix-waitpid"
2550+ , "PostgreSQL"
2551+ , "postgresql-orm"
2552+ , "postgresql-schema"
2553+ , "postgresql-simple-typed"
2554+ , "postgresql-typed"
2555+ , "postgrest"
2556+ , "postie"
2557+ , "postmaster"
2558+ , "powermate"
2559+ , "powerpc"
2560+ , "pqc"
2561+ , "pqueue-mtl"
2562+ , "practice-room"
2563+ , "precis"
2564+ , "prefork"
2565+ , "pregame"
2566+ , "prelude-generalize"
2567+ , "prelude-plus"
2568+ , "preprocess-haskell"
2569+ , "press"
2570+ , "primula-board"
2571+ , "primula-bot"
2572+ , "printf-mauke"
2573+ , "Printf-TH"
2574+ , "PriorityChansConverger"
2575+ , "priority-queue"
2576+ , "ProbabilityMonads"
2577+ , "proc"
2578+ , "processing"
2579+ , "process-iterio"
2580+ , "process-leksah"
2581+ , "process-listlike"
2582+ , "process-progress"
2583+ , "process-qq"
2584+ , "procrastinating-structure"
2585+ , "procrastinating-variable"
2586+ , "procstat"
2587+ , "prof2dot"
2588+ , "profunctor-extras"
2589+ , "progress"
2590+ , "progressbar"
2591+ , "progression"
2592+ , "progressive"
2593+ , "proj4-hs-bindings"
2594+ , "prolog"
2595+ , "prolog-graph"
2596+ , "prolog-graph-lib"
2597+ , "propane"
2598+ , "Proper"
2599+ , "proplang"
2600+ , "protobuf-native"
2601+ , "protocol-buffers-descriptor-fork"
2602+ , "protocol-buffers-fork"
2603+ , "prove-everywhere-server"
2604+ , "proxy-kindness"
2605+ , "pub"
2606+ , "publicsuffixlistcreate"
2607+ , "pubnub"
2608+ , "pubsub"
2609+ , "puffytools"
2610+ , "Pugs"
2611+ , "pugs-compat"
2612+ , "pugs-DrIFT"
2613+ , "pugs-hsregex"
2614+ , "pugs-HsSyck"
2615+ , "punkt"
2616+ , "Pup-Events"
2617+ , "Pup-Events-Demo"
2618+ , "puppetresources"
2619+ , "purescript"
2620+ , "pushme"
2621+ , "push-notify"
2622+ , "push-notify-ccs"
2623+ , "push-notify-general"
2624+ , "putlenses"
2625+ , "puzzle-draw"
2626+ , "puzzle-draw-cmdline"
2627+ , "pvd"
2628+ , "python-pickle"
2629+ , "qd"
2630+ , "qd-vec"
2631+ , "qhull-simple"
2632+ , "QIO"
2633+ , "quantum-arrow"
2634+ , "qudb"
2635+ , "quenya-verb"
2636+ , "querystring-pickle"
2637+ , "queuelike"
2638+ , "QuickAnnotate"
2639+ , "QuickCheck-GenT"
2640+ , "quickcheck-poly"
2641+ , "quickcheck-regex"
2642+ , "quickcheck-relaxng"
2643+ , "quickcheck-rematch"
2644+ , "quickpull"
2645+ , "quickset"
2646+ , "Quickson"
2647+ , "quicktest"
2648+ , "quoridor-hs"
2649+ , "rabocsv2qif"
2650+ , "rad"
2651+ , "radium"
2652+ , "radium-formula-parser"
2653+ , "rados-haskell"
2654+ , "rail-compiler-editor"
2655+ , "rainbow-tests"
2656+ , "Raincat"
2657+ , "rakhana"
2658+ , "ralist"
2659+ , "rallod"
2660+ , "random-access-list"
2661+ , "RandomDotOrg"
2662+ , "random-eff"
2663+ , "random-effin"
2664+ , "random-hypergeometric"
2665+ , "random-stream"
2666+ , "rand-vars"
2667+ , "rangemin"
2668+ , "range-space"
2669+ , "Ranka"
2670+ , "raven-haskell"
2671+ , "raven-haskell-scotty"
2672+ , "rbr"
2673+ , "rdf4h"
2674+ , "rdioh"
2675+ , "reaction-logic"
2676+ , "reactive"
2677+ , "reactive-bacon"
2678+ , "reactive-balsa"
2679+ , "reactive-banana-sdl"
2680+ , "reactive-banana-threepenny"
2681+ , "reactive-fieldtrip"
2682+ , "reactive-glut"
2683+ , "reactive-thread"
2684+ , "reactor"
2685+ , "really-simple-xml-parser"
2686+ , "reasonable-lens"
2687+ , "record-aeson"
2688+ , "record-gl"
2689+ , "record-preprocessor"
2690+ , "records"
2691+ , "records-th"
2692+ , "redHandlers"
2693+ , "ref"
2694+ , "Ref"
2695+ , "Referees"
2696+ , "refh"
2697+ , "reflection-extras"
2698+ , "regex-deriv"
2699+ , "regex-dfa"
2700+ , "regex-genex"
2701+ , "regex-parsec"
2702+ , "regex-pderiv"
2703+ , "regexp-tries"
2704+ , "regexqq"
2705+ , "regex-tdfa-utf8"
2706+ , "regex-tre"
2707+ , "regex-xmlschema"
2708+ , "regional-pointers"
2709+ , "regions"
2710+ , "regions-monadsfd"
2711+ , "regions-monadstf"
2712+ , "regions-mtl"
2713+ , "regular-extras"
2714+ , "regular-web"
2715+ , "reheat"
2716+ , "rei"
2717+ , "reified-records"
2718+ , "reify"
2719+ , "remote"
2720+ , "remote-debugger"
2721+ , "remotion"
2722+ , "reorderable"
2723+ , "repa-array"
2724+ , "repa-bytestring"
2725+ , "repa-flow"
2726+ , "repa-plugin"
2727+ , "repa-series"
2728+ , "repa-v4l2"
2729+ , "repl"
2730+ , "RepLib"
2731+ , "repo-based-blog"
2732+ , "repr"
2733+ , "representable-functors"
2734+ , "representable-profunctors"
2735+ , "representable-tries"
2736+ , "resource-embed"
2737+ , "resource-simple"
2738+ , "respond"
2739+ , "restful-snap"
2740+ , "RESTng"
2741+ , "restricted-workers"
2742+ , "restyle"
2743+ , "resumable-exceptions"
2744+ , "rethinkdb-client-driver"
2745+ , "rethinkdb-model"
2746+ , "ReviewBoard"
2747+ , "rewrite"
2748+ , "rewriting"
2749+ , "rezoom"
2750+ , "rfc3339"
2751+ , "riak"
2752+ , "riak-protobuf"
2753+ , "riot"
2754+ , "ripple"
2755+ , "ripple-federation"
2756+ , "risc386"
2757+ , "rivers"
2758+ , "RJson"
2759+ , "rmonad"
2760+ , "RMP"
2761+ , "RNAdesign"
2762+ , "RNAdraw"
2763+ , "RNAFold"
2764+ , "RNAFoldProgs"
2765+ , "RNAwolf"
2766+ , "roguestar"
2767+ , "roguestar-engine"
2768+ , "roguestar-gl"
2769+ , "roguestar-glut"
2770+ , "RollingDirectory"
2771+ , "rope"
2772+ , "rosa"
2773+ , "roshask"
2774+ , "rosso"
2775+ , "rotating-log"
2776+ , "rounding"
2777+ , "roundtrip"
2778+ , "roundtrip-aeson"
2779+ , "roundtrip-string"
2780+ , "roundtrip-xml"
2781+ , "route-generator"
2782+ , "route-planning"
2783+ , "rowrecord"
2784+ , "rpc"
2785+ , "rpc-framework"
2786+ , "rpm"
2787+ , "rsagl"
2788+ , "rsagl-frp"
2789+ , "rsagl-math"
2790+ , "rss2irc"
2791+ , "rubberband"
2792+ , "ruff"
2793+ , "ruler-core"
2794+ , "rungekutta"
2795+ , "RxHaskell"
2796+ , "safe-freeze"
2797+ , "safe-globals"
2798+ , "safeint"
2799+ , "safe-lazy-io"
2800+ , "safe-plugins"
2801+ , "safer-file-handles"
2802+ , "safer-file-handles-bytestring"
2803+ , "safer-file-handles-text"
2804+ , "sai-shape-syb"
2805+ , "Salsa"
2806+ , "salvia"
2807+ , "salvia-demo"
2808+ , "salvia-extras"
2809+ , "salvia-protocol"
2810+ , "salvia-sessions"
2811+ , "salvia-websocket"
2812+ , "samtools-iteratee"
2813+ , "sasl"
2814+ , "sat"
2815+ , "satchmo-backends"
2816+ , "satchmo-examples"
2817+ , "satchmo-funsat"
2818+ , "satchmo-minisat"
2819+ , "sat-micro-hs"
2820+ , "SBench"
2821+ , "scaleimage"
2822+ , "scan-vector-machine"
2823+ , "scat"
2824+ , "scenegraph"
2825+ , "schedevr"
2826+ , "scholdoc"
2827+ , "scholdoc-citeproc"
2828+ , "scion"
2829+ , "scion-browser"
2830+ , "scope"
2831+ , "scope-cairo"
2832+ , "scottish"
2833+ , "scotty-blaze"
2834+ , "scotty-fay"
2835+ , "scotty-hastache"
2836+ , "scotty-session"
2837+ , "scrabble-bot"
2838+ , "ScratchFs"
2839+ , "scrobble"
2840+ , "scroll"
2841+ , "scrz"
2842+ , "Scurry"
2843+ , "SDL-gfx"
2844+ , "SDL-image"
2845+ , "SDL-mixer"
2846+ , "SDL-mpeg"
2847+ , "SDL-ttf"
2848+ , "seacat"
2849+ , "search"
2850+ , "secdh"
2851+ , "second-transfer"
2852+ , "secret-santa"
2853+ , "secret-sharing"
2854+ , "secrm"
2855+ , "sednaDBXML"
2856+ , "selectors"
2857+ , "selenium"
2858+ , "selenium-server"
2859+ , "selinux"
2860+ , "Semantique"
2861+ , "semigroups-actions"
2862+ , "semi-iso"
2863+ , "semiring"
2864+ , "sensenet"
2865+ , "sentry"
2866+ , "senza"
2867+ , "seqaid"
2868+ , "SeqAlign"
2869+ , "seqloc-datafiles"
2870+ , "sequent-core"
2871+ , "sequor"
2872+ , "servant-pool"
2873+ , "servant-postgresql"
2874+ , "servant-scotty"
2875+ , "servius"
2876+ , "ses-html-snaplet"
2877+ , "SessionLogger"
2878+ , "sessions"
2879+ , "set-with"
2880+ , "sexp"
2881+ , "sexpr"
2882+ , "sext"
2883+ , "SFML"
2884+ , "SFML-control"
2885+ , "SFont"
2886+ , "SG"
2887+ , "SGdemo"
2888+ , "sgrep"
2889+ , "shadower"
2890+ , "shady-gen"
2891+ , "shady-graphics"
2892+ , "shake-extras"
2893+ , "shaker"
2894+ , "shakespeare-css"
2895+ , "shakespeare-i18n"
2896+ , "shapely-data"
2897+ , "shared-buffer"
2898+ , "she"
2899+ , "Shellac"
2900+ , "Shellac-compatline"
2901+ , "Shellac-editline"
2902+ , "Shellac-haskeline"
2903+ , "Shellac-readline"
2904+ , "shellish"
2905+ , "shell-pipe"
2906+ , "shivers-cfg"
2907+ , "showdown"
2908+ , "shpider"
2909+ , "sifflet"
2910+ , "sifflet-lib"
2911+ , "signals"
2912+ , "simd"
2913+ , "simgi"
2914+ , "simple"
2915+ , "simple-bluetooth"
2916+ , "simple-css"
2917+ , "simple-c-value"
2918+ , "simple-firewire"
2919+ , "simple-form"
2920+ , "SimpleGL"
2921+ , "SimpleH"
2922+ , "simpleirc"
2923+ , "simpleirc-lens"
2924+ , "SimpleLog"
2925+ , "simple-log-syslog"
2926+ , "simplenote"
2927+ , "simple-pascal"
2928+ , "simple-postgresql-orm"
2929+ , "simpleprelude"
2930+ , "simple-session"
2931+ , "simplessh"
2932+ , "simple-templates"
2933+ , "simple-vec3"
2934+ , "simseq"
2935+ , "sindre"
2936+ , "sirkel"
2937+ , "sized"
2938+ , "sized-types"
2939+ , "sized-vector"
2940+ , "skeleton"
2941+ , "skype4hs"
2942+ , "slack"
2943+ , "slidemews"
2944+ , "sloth"
2945+ , "smallarray"
2946+ , "smallpt-hs"
2947+ , "smallstring"
2948+ , "smartcheck"
2949+ , "smartGroup"
2950+ , "smartword"
2951+ , "sme"
2952+ , "Smooth"
2953+ , "smt-lib"
2954+ , "smtlib2"
2955+ , "smtp2mta"
2956+ , "smtp-mail-ng"
2957+ , "smtps-gmail"
2958+ , "snake-game"
2959+ , "snap-accept"
2960+ , "snap-app"
2961+ , "snap-elm"
2962+ , "snap-extras"
2963+ , "snaplet-actionlog"
2964+ , "snaplet-css-min"
2965+ , "snaplet-environments"
2966+ , "snaplet-haxl"
2967+ , "snaplet-hdbc"
2968+ , "snaplet-i18n"
2969+ , "snaplet-mongoDB"
2970+ , "snaplet-mongodb-minimalistic"
2971+ , "snaplet-mysql-simple"
2972+ , "snaplet-oauth"
2973+ , "snaplet-redson"
2974+ , "snaplet-rest"
2975+ , "snaplet-riak"
2976+ , "snaplet-sedna"
2977+ , "snaplet-tasks"
2978+ , "snaplet-typed-sessions"
2979+ , "snaplet-wordpress"
2980+ , "snap-predicates"
2981+ , "snappy-iteratee"
2982+ , "snap-testing"
2983+ , "snap-utils"
2984+ , "sndfile-enumerators"
2985+ , "sneathlane-haste"
2986+ , "SNet"
2987+ , "snm"
2988+ , "snow-white"
2989+ , "Snusmumrik"
2990+ , "SoccerFun"
2991+ , "SoccerFunGL"
2992+ , "sock2stream"
2993+ , "socketio"
2994+ , "socket-sctp"
2995+ , "sonic-visualiser"
2996+ , "SoOSiM"
2997+ , "sorted"
2998+ , "sound-collage"
2999+ , "source-code-server"
3000+ , "sousit"
3001+ , "soxlib"
3002+ , "soyuz"
3003+ , "SpaceInvaders"
3004+ , "SpacePrivateers"
3005+ , "spanout"
3006+ , "sparse"
3007+ , "sparsebit"
3008+ , "sparsecheck"
3009+ , "spata"
3010+ , "special-functors"
3011+ , "specialize-th"
3012+ , "speculation-transformers"
3013+ , "sphero"
3014+ , "sphinx-cli"
3015+ , "spice"
3016+ , "spike"
3017+ , "splaytree"
3018+ , "splines"
3019+ , "split-record"
3020+ , "splot"
3021+ , "Spock-auth"
3022+ , "spoonutil"
3023+ , "spoty"
3024+ , "Sprig"
3025+ , "spy"
3026+ , "sqlite-simple-typed"
3027+ , "sql-simple"
3028+ , "sql-simple-mysql"
3029+ , "sql-simple-pool"
3030+ , "sql-simple-postgresql"
3031+ , "sql-simple-sqlite"
3032+ , "srcinst"
3033+ , "sscgi"
3034+ , "ssh"
3035+ , "sssp"
3036+ , "sstable"
3037+ , "stackage-curator"
3038+ , "stack-prism"
3039+ , "starrover2"
3040+ , "stateful-mtl"
3041+ , "statgrab"
3042+ , "statistics-dirichlet"
3043+ , "statistics-fusion"
3044+ , "stb-truetype"
3045+ , "steeloverseer"
3046+ , "step-function"
3047+ , "stepwise"
3048+ , "stm-chunked-queues"
3049+ , "stmcontrol"
3050+ , "stm-firehose"
3051+ , "Stomp"
3052+ , "storable-static-array"
3053+ , "storablevector"
3054+ , "storablevector-carray"
3055+ , "storablevector-streamfusion"
3056+ , "Strafunski-Sdf2Haskell"
3057+ , "streamed"
3058+ , "stream-fusion"
3059+ , "StrictBench"
3060+ , "strict-concurrency"
3061+ , "string"
3062+ , "stringlike"
3063+ , "structured-mongoDB"
3064+ , "structures"
3065+ , "stunts"
3066+ , "subhask"
3067+ , "suitable"
3068+ , "sunlight"
3069+ , "sunroof-compiler"
3070+ , "sunroof-examples"
3071+ , "sunroof-server"
3072+ , "supercollider-midi"
3073+ , "superdoc"
3074+ , "supero"
3075+ , "supervisor"
3076+ , "svg2q"
3077+ , "SVG2Q"
3078+ , "svm-simple"
3079+ , "svndump"
3080+ , "swapper"
3081+ , "swearjure"
3082+ , "swf"
3083+ , "swift-lda"
3084+ , "sws"
3085+ , "syb-extras"
3086+ , "sylvia"
3087+ , "sym-plot"
3088+ , "sync"
3089+ , "sync-mht"
3090+ , "syntax"
3091+ , "syntax-attoparsec"
3092+ , "syntax-example"
3093+ , "syntax-example-json"
3094+ , "SyntaxMacros"
3095+ , "syntax-pretty"
3096+ , "syntax-printer"
3097+ , "syntax-trees"
3098+ , "syntax-trees-fork-bairyn"
3099+ , "synthesizer"
3100+ , "synthesizer-alsa"
3101+ , "synthesizer-core"
3102+ , "synthesizer-dimensional"
3103+ , "synthesizer-midi"
3104+ , "Sysmon"
3105+ , "system-canonicalpath"
3106+ , "system-lifted"
3107+ , "system-random-effect"
3108+ , "ta"
3109+ , "Tables"
3110+ , "tablestorage"
3111+ , "tabloid"
3112+ , "tagged-list"
3113+ , "tagged-th"
3114+ , "tagsoup-ht"
3115+ , "tagsoup-parsec"
3116+ , "Takusen"
3117+ , "takusen-oracle"
3118+ , "tamarin-prover"
3119+ , "tamarin-prover-term"
3120+ , "tamarin-prover-theory"
3121+ , "tamarin-prover-utils"
3122+ , "tamper"
3123+ , "target"
3124+ , "task"
3125+ , "tasty-integrate"
3126+ , "TBC"
3127+ , "tbox"
3128+ , "tccli"
3129+ , "tcp"
3130+ , "tdd-util"
3131+ , "TeaHS"
3132+ , "teams"
3133+ , "telegram"
3134+ , "template-default"
3135+ , "template-haskell-util"
3136+ , "template-hsml"
3137+ , "templatepg"
3138+ , "tempodb"
3139+ , "temporal-csound"
3140+ , "tempus"
3141+ , "tensor"
3142+ , "termbox-bindings"
3143+ , "term-rewriting"
3144+ , "terrahs"
3145+ , "tersmu"
3146+ , "test-framework-doctest"
3147+ , "test-framework-quickcheck"
3148+ , "testloop"
3149+ , "testpattern"
3150+ , "testPkg"
3151+ , "testrunner"
3152+ , "tetris"
3153+ , "tex2txt"
3154+ , "texrunner"
3155+ , "text-json-qq"
3156+ , "textmatetags"
3157+ , "text-normal"
3158+ , "textPlot"
3159+ , "text-register-machine"
3160+ , "texts"
3161+ , "text-xml-generic"
3162+ , "text-xml-qq"
3163+ , "tfp-th"
3164+ , "themplate"
3165+ , "Theora"
3166+ , "theoremquest-client"
3167+ , "thih"
3168+ , "thimk"
3169+ , "Thingie"
3170+ , "th-instances"
3171+ , "th-kinds"
3172+ , "thrift"
3173+ , "Thrift"
3174+ , "throttle"
3175+ , "tianbar"
3176+ , "tic-tac-toe"
3177+ , "TicTacToe"
3178+ , "tiger"
3179+ , "tighttp"
3180+ , "timberc"
3181+ , "timecalc"
3182+ , "time-extras"
3183+ , "time-http"
3184+ , "timeout"
3185+ , "timeout-control"
3186+ , "timeparsers"
3187+ , "time-patterns"
3188+ , "TimePiece"
3189+ , "timeplot"
3190+ , "time-recurrence"
3191+ , "time-series"
3192+ , "timestamp-subprocess-lines"
3193+ , "time-w3c"
3194+ , "TinyLaunchbury"
3195+ , "TinyURL"
3196+ , "Titim"
3197+ , "tkhs"
3198+ , "tkyprof"
3199+ , "tls-extra"
3200+ , "todos"
3201+ , "to-haskell"
3202+ , "toilet"
3203+ , "toktok"
3204+ , "tokyocabinet-haskell"
3205+ , "toml"
3206+ , "Top"
3207+ , "topkata"
3208+ , "torch"
3209+ , "to-string-class"
3210+ , "to-string-instances"
3211+ , "Tournament"
3212+ , "tracker"
3213+ , "trajectory"
3214+ , "transactional-events"
3215+ , "transformers-convert"
3216+ , "transformers-runnable"
3217+ , "translate"
3218+ , "traypoweroff"
3219+ , "treemap-html-tools"
3220+ , "treeviz"
3221+ , "tremulous-query"
3222+ , "TrendGraph"
3223+ , "trhsx"
3224+ , "triangulation"
3225+ , "TrieMap"
3226+ , "trimpolya"
3227+ , "true-name"
3228+ , "tsession"
3229+ , "tsession-happstack"
3230+ , "tskiplist"
3231+ , "tsp-viz"
3232+ , "tuntap"
3233+ , "tup-functor"
3234+ , "tuple-gen"
3235+ , "tupleinstances"
3236+ , "tuple-morph"
3237+ , "twentefp-rosetree"
3238+ , "twhs"
3239+ , "twidge"
3240+ , "twilight-stm"
3241+ , "twilio"
3242+ , "twill"
3243+ , "twiml"
3244+ , "twine"
3245+ , "twisty"
3246+ , "twitch"
3247+ , "twitter"
3248+ , "twitter-conduit"
3249+ , "twitter-enumerator"
3250+ , "twitter-types"
3251+ , "twitter-types-lens"
3252+ , "tx"
3253+ , "TYB"
3254+ , "typalyze"
3255+ , "typeable-th"
3256+ , "type-cereal"
3257+ , "TypeClass"
3258+ , "type-digits"
3259+ , "typedquery"
3260+ , "type-equality-check"
3261+ , "typehash"
3262+ , "TypeIlluminator"
3263+ , "type-int"
3264+ , "type-level"
3265+ , "type-level-bst"
3266+ , "type-level-sets"
3267+ , "typelevel-tensor"
3268+ , "type-list"
3269+ , "TypeNat"
3270+ , "type-natural"
3271+ , "type-ord"
3272+ , "type-ord-spine-cereal"
3273+ , "typeparams"
3274+ , "type-prelude"
3275+ , "typescript-docs"
3276+ , "type-settheory"
3277+ , "type-spine"
3278+ , "type-structure"
3279+ , "type-sub-th"
3280+ , "typography-geometry"
3281+ , "uAgda"
3282+ , "uberlast"
3283+ , "uconv"
3284+ , "udbus"
3285+ , "udbus-model"
3286+ , "udev"
3287+ , "ui-command"
3288+ , "UMM"
3289+ , "unamb-custom"
3290+ , "unbound"
3291+ , "unbounded-delays-units"
3292+ , "unboxed-containers"
3293+ , "unicode-normalization"
3294+ , "unicoder"
3295+ , "uniform-io"
3296+ , "union-map"
3297+ , "uniqueid"
3298+ , "unique-logic-tf"
3299+ , "units"
3300+ , "units-defs"
3301+ , "unittyped"
3302+ , "universe-th"
3303+ , "unix-process-conduit"
3304+ , "unlit"
3305+ , "unordered-containers-rematch"
3306+ , "unpack-funcs"
3307+ , "unscramble"
3308+ , "up"
3309+ , "uploadcare"
3310+ , "upskirt"
3311+ , "ureader"
3312+ , "urembed"
3313+ , "uri-conduit"
3314+ , "uri-enumerator"
3315+ , "uri-enumerator-file"
3316+ , "urlcheck"
3317+ , "urldecode"
3318+ , "UrlDisp"
3319+ , "urldisp-happstack"
3320+ , "url-generic"
3321+ , "URLT"
3322+ , "urxml"
3323+ , "usb-enumerator"
3324+ , "usb-iteratee"
3325+ , "usb-safe"
3326+ , "uuagc-diagrams"
3327+ , "uu-tc"
3328+ , "uvector"
3329+ , "uvector-algorithms"
3330+ , "v4l2"
3331+ , "v4l2-examples"
3332+ , "vacuum"
3333+ , "vacuum-cairo"
3334+ , "vacuum-graphviz"
3335+ , "vacuum-opengl"
3336+ , "vacuum-ubigraph"
3337+ , "validate"
3338+ , "vampire"
3339+ , "var"
3340+ , "vaultaire-common"
3341+ , "vcard"
3342+ , "Vec-Boolean"
3343+ , "Vec-OpenGLRaw"
3344+ , "vector-bytestring"
3345+ , "vector-clock"
3346+ , "vector-conduit"
3347+ , "vector-fftw"
3348+ , "vector-functorlazy"
3349+ , "vector-instances-collections"
3350+ , "vector-random"
3351+ , "vector-read-instances"
3352+ , "vector-space-opengl"
3353+ , "vector-static"
3354+ , "Vec-Transform"
3355+ , "verilog"
3356+ , "vigilance"
3357+ , "vintage-basic"
3358+ , "vinyl"
3359+ , "vinyl-gl"
3360+ , "vinyl-json"
3361+ , "vinyl-utils"
3362+ , "virthualenv"
3363+ , "vision"
3364+ , "visual-graphrewrite"
3365+ , "visual-prof"
3366+ , "vk-aws-route53"
3367+ , "VKHS"
3368+ , "vorbiscomment"
3369+ , "vowpal-utils"
3370+ , "voyeur"
3371+ , "vtegtk3"
3372+ , "vty-examples"
3373+ , "vty-menu"
3374+ , "vty-ui"
3375+ , "vty-ui-extras"
3376+ , "wai-cors"
3377+ , "wai-eventsource"
3378+ , "wai-graceful"
3379+ , "wai-handler-devel"
3380+ , "wai-handler-snap"
3381+ , "wai-handler-webkit"
3382+ , "wai-hastache"
3383+ , "wai-lite"
3384+ , "wai-logger-prefork"
3385+ , "wai-middleware-cache"
3386+ , "wai-middleware-cache-redis"
3387+ , "wai-middleware-catch"
3388+ , "wai-middleware-consul"
3389+ , "wai-middleware-etag"
3390+ , "wai-middleware-headers"
3391+ , "wai-middleware-hmac-client"
3392+ , "wai-middleware-preprocessor"
3393+ , "wai-middleware-route"
3394+ , "wai-middleware-static-caching"
3395+ , "wai-predicates"
3396+ , "wai-routing"
3397+ , "wai-session-tokyocabinet"
3398+ , "wai-static-cache"
3399+ , "wai-throttler"
3400+ , "waitra"
3401+ , "warp-dynamic"
3402+ , "warp-static"
3403+ , "warp-tls-uid"
3404+ , "WashNGo"
3405+ , "watchdog"
3406+ , "watcher"
3407+ , "watchit"
3408+ , "wavesurfer"
3409+ , "weather-api"
3410+ , "WebBits-Html"
3411+ , "WebBits-multiplate"
3412+ , "web-browser-in-haskell"
3413+ , "WebCont"
3414+ , "webcrank-dispatch"
3415+ , "webcrank-wai"
3416+ , "webdriver-snoy"
3417+ , "web-encodings"
3418+ , "webify"
3419+ , "webkit-javascriptcore"
3420+ , "web-mongrel2"
3421+ , "Webrexp"
3422+ , "web-routes-quasi"
3423+ , "web-routes-transformers"
3424+ , "webserver"
3425+ , "websnap"
3426+ , "webwire"
3427+ , "wedged"
3428+ , "weighted-regexp"
3429+ , "welshy"
3430+ , "Wheb"
3431+ , "wheb-mongo"
3432+ , "wheb-redis"
3433+ , "wheb-strapped"
3434+ , "whim"
3435+ , "whitespace"
3436+ , "WikimediaParser"
3437+ , "wikipedia4epub"
3438+ , "Win32-dhcp-server"
3439+ , "Win32-errors"
3440+ , "Win32-extras"
3441+ , "Win32-junction-point"
3442+ , "Win32-notify"
3443+ , "Win32-security"
3444+ , "Win32-services"
3445+ , "Win32-services-wrapper"
3446+ , "windowslive"
3447+ , "winerror"
3448+ , "winio"
3449+ , "WL500gPControl"
3450+ , "wlc-hs"
3451+ , "wobsurv"
3452+ , "woffex"
3453+ , "wolf"
3454+ , "word24"
3455+ , "wordcloud"
3456+ , "Wordlint"
3457+ , "WordNet"
3458+ , "WordNet-ghc74"
3459+ , "wordsearch"
3460+ , "wp-archivebot"
3461+ , "wraxml"
3462+ , "wright"
3463+ , "wtk"
3464+ , "wtk-gtk"
3465+ , "wumpus-basic"
3466+ , "wumpus-core"
3467+ , "wumpus-drawing"
3468+ , "wumpus-microprint"
3469+ , "wumpus-tree"
3470+ , "WURFL"
3471+ , "wxAsteroids"
3472+ , "WXDiffCtrl"
3473+ , "wxFruit"
3474+ , "wxhnotepad"
3475+ , "wxturtle"
3476+ , "wyvern"
3477+ , "X11-extras"
3478+ , "X11-rm"
3479+ , "X11-xdamage"
3480+ , "X11-xfixes"
3481+ , "x11-xinput"
3482+ , "x509-util"
3483+ , "xchat-plugin"
3484+ , "x-dsp"
3485+ , "Xec"
3486+ , "xfconf"
3487+ , "xhaskell-library"
3488+ , "xhb-ewmh"
3489+ , "xine"
3490+ , "xing-api"
3491+ , "XInput"
3492+ , "xkcd"
3493+ , "xlsior"
3494+ , "xlsx-templater"
3495+ , "xml2json"
3496+ , "xml2x"
3497+ , "xml-catalog"
3498+ , "xml-enumerator"
3499+ , "xml-enumerator-combinators"
3500+ , "XmlHtmlWriter"
3501+ , "xml-parsec"
3502+ , "xml-pipe"
3503+ , "xml-prettify"
3504+ , "xml-push"
3505+ , "xmltv"
3506+ , "XMMS"
3507+ , "xmms2-client"
3508+ , "xmms2-client-glib"
3509+ , "xmonad-bluetilebranch"
3510+ , "xmonad-contrib-bluetilebranch"
3511+ , "xmonad-eval"
3512+ , "xmpipe"
3513+ , "XMPP"
3514+ , "xournal-builder"
3515+ , "xournal-convert"
3516+ , "xournal-parser"
3517+ , "xournal-render"
3518+ , "xournal-types"
3519+ , "xsact"
3520+ , "XSaiga"
3521+ , "xslt"
3522+ , "y0l0bot"
3523+ , "Yablog"
3524+ , "yackage"
3525+ , "YACPong"
3526+ , "yahoo-web-search"
3527+ , "yajl"
3528+ , "yajl-enumerator"
3529+ , "yaml2owl"
3530+ , "YamlReference"
3531+ , "yaml-rpc"
3532+ , "yaml-rpc-scotty"
3533+ , "yaml-rpc-snap"
3534+ , "yampa-canvas"
3535+ , "yampa-glfw"
3536+ , "yampa-glut"
3537+ , "yaop"
3538+ , "yarr"
3539+ , "yarr-image-io"
3540+ , "yavie"
3541+ , "ycextra"
3542+ , "yesod-angular-ui"
3543+ , "yesod-auth-account-fork"
3544+ , "yesod-auth-kerberos"
3545+ , "yesod-auth-ldap"
3546+ , "yesod-auth-pam"
3547+ , "yesod-auth-smbclient"
3548+ , "yesod-bootstrap"
3549+ , "yesod-comments"
3550+ , "yesod-continuations"
3551+ , "yesod-datatables"
3552+ , "yesod-dsl"
3553+ , "yesod-eventsource"
3554+ , "yesod-examples"
3555+ , "yesod-goodies"
3556+ , "yesod-links"
3557+ , "yesod-mangopay"
3558+ , "yesod-paginate"
3559+ , "yesod-pagination"
3560+ , "yesod-paginator"
3561+ , "yesod-platform"
3562+ , "yesod-pure"
3563+ , "yesod-purescript"
3564+ , "yesod-raml"
3565+ , "yesod-routes-flow"
3566+ , "yesod-routes-typescript"
3567+ , "yesod-rst"
3568+ , "yesod-s3"
3569+ , "yesod-session-redis"
3570+ , "yesod-tableview"
3571+ , "yesod-test-json"
3572+ , "yesod-tls"
3573+ , "yesod-vend"
3574+ , "yesod-worker"
3575+ , "YFrob"
3576+ , "yhccore"
3577+ , "yi-contrib"
3578+ , "yi-fuzzy-open"
3579+ , "yi-gtk"
3580+ , "yi-vty"
3581+ , "yjftp"
3582+ , "Yogurt"
3583+ , "Yogurt-Standalone"
3584+ , "yoko"
3585+ , "york-lava"
3586+ , "yql"
3587+ , "yuiGrid"
3588+ , "yuuko"
3589+ , "zampolit"
3590+ , "zasni-gerna"
3591+ , "zendesk-api"
3592+ , "zeno"
3593+ , "zeromq3-conduit"
3594+ , "zeromq3-haskell"
3595+ , "zeromq-haskell"
3596+ , "zeroth"
3597+ , "ZFS"
3598+ , "zipedit"
3599+ , "ZMachine"
3600+ , "zmcat"
3601+ , "zmqat"
3602+ , "zoneinfo"
3603+ , "zoom"
3604+ , "zoom-cache"
3605+ , "zoom-cache-pcm"
3606+ , "zoom-cache-sndfile"
3607+ , "zot"
3608+ , "zsh-battery"
3609+ , "ztail"
3610+ , "Zwaluw"
3611+ , "yesod-media-simple"
3612+ , "token-utils"
3613+ , "ghc-imported-from"
3614+ , "libhbb"
3615+ , "hoogle-index"
3616+ , "reflex-dom"
3617+ , "HaRe"
3618+ , "aws-configuration-tools"
3619+ , "aws-dynamodb-streams"
3620+ , "aws-general"
3621+ , "aws-kinesis-client"
3622+ , "aws-kinesis"
3623+ , "aws-performance-tests"
3624+ , "byline"
3625+ , "glambda"
3626+ , "haskell-token-utils"
3627+ , "hbb"
3628+ , "octohat"
3629+ , "orchestrate"
3630+ , "pdf-toolbox-content"
3631+ , "pdf-toolbox-core"
3632+ , "pdf-toolbox-document"
3633+ , "pdf-toolbox-viewer"
3634+ , "riemann"
3635+ , "tellbot"
3636+ , "terminfo-hs"
3637+ , "vimeta"
3638+ , "ply-loader"
3639+ , "bitvec"
3640+ , "full-text-search"
3641+ , "QuadEdge"
3642+ , "sdr"
3643+ , "these"
3644+ , "tz"
3645+ , "jacobi-roots"
3646+ , "atomic-primops-vector"
3647+ , "OrderedBits"
3648+ , "pipes-csv"
3649+ , "hybrid-vectors"
3650+ , "hyperloglog"
3651+ , "bitstream"
3652+ , "repa-stream"
3653+ , "dph-prim-seq"
3654+ , "compensated"
3655+ , "ADPfusion"
3656+ , "GrammarProducts"
3657+ , "reflex"
3658+ , "reflex-gloss"
3659+ , "AlignmentAlgorithms"
3660+ , "GenussFold"
3661+ , "PrimitiveArray"
3662+ , "FormalGrammars"
3663+ , "BiobaseXNA"
3664+ , "BiobaseTypes"
3665+ , "broker-haskell"
3666+ , "concurrent-machines"
3667+ , "darcs-fastconvert"
3668+ , "ivory-backend-c"
3669+ , "ivory-bitdata"
3670+ , "ivory-examples"
3671+ , "ivory-hw"
3672+ , "laborantin-hs"
3673+ , "magico"
3674+ , "resistor-cube"
3675+ , "taskpool"
3676+ , "wai-middleware-metrics"
3677+ ]
3678+
3679+}
src/Distribution/Nixpkgs/Haskell/FromCabal/Name.hs+5−5
@@ -2,14 +2,14 @@
22
33module Distribution.Nixpkgs.Haskell.FromCabal.Name ( toNixName, libNixName, buildToolNixName ) where
44
5−import Language.Nix.Identifier
5+import Data.String
66import Distribution.Package
7−import Internal.Lens
7+import Language.Nix
88
99-- | Map Cabal names to Nix attribute names.
1010toNixName :: PackageName -> Identifier
1111toNixName (PackageName "") = error "toNixName: invalid empty package name"
12−toNixName (PackageName n) = create ident n
12+toNixName (PackageName n) = fromString n
1313
1414-- | Map libraries to Nix packages.
1515--
@@ -160,7 +160,7 @@ libNixName "Xtst" = return "libXtst"
160160libNixName "Xxf86vm" = return "libXxf86vm"
161161libNixName "zmq" = return "zeromq"
162162libNixName "z" = return "zlib"
163−libNixName x = return (create ident x)
163+libNixName x = return (fromString x)
164164
165165-- | Map build tool names to Nix attribute names.
166166buildToolNixName :: String -> [Identifier]
@@ -169,4 +169,4 @@ buildToolNixName "cabal" = return "cabal-install"
169169buildToolNixName "gtk2hsC2hs" = return "gtk2hs-buildtools"
170170buildToolNixName "gtk2hsHookGenerator" = return "gtk2hs-buildtools"
171171buildToolNixName "gtk2hsTypeGen" = return "gtk2hs-buildtools"
172−buildToolNixName x = return (create ident x)
172+buildToolNixName x = return (fromString x)
src/Distribution/Nixpkgs/Haskell/FromCabal/Normalize.hs+6−5
@@ -1,18 +1,19 @@
11module Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalize, normalizeCabalFlags ) where
22
3−import Distribution.Nixpkgs.Haskell.FromCabal.CorePackages
43import Data.Function
54import Data.List
65import Data.Set ( Set )
76import qualified Data.Set as Set
7+import Data.String
88import Distribution.Nixpkgs.Haskell
9+import Distribution.Nixpkgs.Haskell.FromCabal.CorePackages
910import Distribution.Nixpkgs.Meta
1011import Distribution.Package
1112import Distribution.PackageDescription ( FlagAssignment, FlagName(..) )
1213import Distribution.Simple.Utils ( lowercase )
1314import Internal.Lens
1415import Internal.Regex ( regsubmatch )
15−import Language.Nix.Identifier ( ident )
16+import Language.Nix hiding ( quote )
1617
1718normalize :: Derivation -> Derivation
1819normalize drv = drv
@@ -24,9 +25,9 @@ normalize drv = drv
2425
2526normalizeBuildInfo :: PackageName -> BuildInfo -> BuildInfo
2627normalizeBuildInfo (PackageName pname) bi = bi
27− & haskell . contains (create ident pname) .~ False
28− & tool . contains (create ident pname) .~ False
29− & tool %~ Set.filter (\n -> n^.ident `notElem` coreBuildTools)
28+ & haskell %~ (Set.filter (\b -> view localName b /= fromString pname))
29+ & tool %~ (Set.filter (\b -> view localName b /= fromString pname))
30+ & tool %~ Set.filter (\n -> n^.localName.ident `notElem` coreBuildTools)
3031
3132 {-
3233 {
src/Distribution/Nixpkgs/Haskell/FromCabal/PostProcess.hs+1
@@ -9,6 +9,7 @@ import Distribution.Nixpkgs.Haskell
99import Distribution.Package
1010import Distribution.Text
1111import Distribution.Version
12+import Language.Nix ( ) -- IsString instance for Binding
1213
1314postProcess :: Derivation -> Derivation
1415postProcess deriv = foldr ($) (fixGtkBuilds deriv) [ f | (Dependency n vr, f) <- hooks, packageName deriv == n, packageVersion deriv `withinRange` vr ]
src/Distribution/Nixpkgs/PackageMap.hs+21−7
@@ -1,18 +1,22 @@
1−module Distribution.Nixpkgs.PackageMap where
1+module Distribution.Nixpkgs.PackageMap
2+ ( PackageMap, readNixpkgPackageMap
3+ , resolve
4+ ) where
25
36import qualified Data.Aeson as JSON
47import qualified Data.ByteString.Lazy as LBS
8+import Data.Function
9+import Data.List as List
510import Data.List.Split
6−import qualified Data.Map as Map
11+import qualified Data.Map.Strict as Map
712import Data.Map.Strict ( Map )
13+import Data.Maybe
814import Data.Set ( Set )
915import qualified Data.Set as Set
10−import System.Process
1116import Internal.Lens
12−import Language.Nix.Identifier
13−import Language.Nix.Path
14−import Data.Maybe
1517import Internal.PrettyPrinting
18+import Language.Nix
19+import System.Process
1620
1721type PackageMap = Map Identifier (Set Path)
1822
@@ -42,4 +46,14 @@ parsePackage :: String -> Maybe (Identifier, Path)
4246parsePackage x | null x = error "Distribution.Nixpkgs.PackageMap.parsepackage: empty string is no valid identifier"
4347 | xs <- splitOn "." x = if needsQuoting (head xs)
4448 then Nothing
45− else Just (create ident (last xs), create path (map (create ident) (init xs)))
49+ else Just (create ident (last xs), create path (map (create ident) xs))
50+
51+resolve :: PackageMap -> Identifier -> Maybe Binding
52+resolve nixpkgs i = case Map.lookup i nixpkgs of
53+ Nothing -> Nothing
54+ Just ps -> let p = chooseShortestPath (Set.toList ps)
55+ in Just $ create binding (i,p)
56+
57+chooseShortestPath :: [Path] -> Path
58+chooseShortestPath [] = error "chooseShortestPath: called with empty list argument"
59+chooseShortestPath ps = minimumBy (on compare (view (path . to length))) ps
src/Language/Nix/Binding.hs+11−2
@@ -1,20 +1,29 @@
1+{-# LANGUAGE DeriveGeneric #-}
12{-# LANGUAGE TemplateHaskell #-}
23
34module Language.Nix.Binding ( Binding, binding, localName, reference ) where
45
6+import Control.DeepSeq.Generics
7+import Data.String
8+import GHC.Generics ( Generic )
59import Internal.Lens
10+import Internal.PrettyPrinting
611import Language.Nix.Identifier
712import Language.Nix.Path
8−import Internal.PrettyPrinting
913
1014data Binding = Bind { _localName :: Identifier, _reference :: Path }
11− deriving (Show, Eq, Ord)
15+ deriving (Show, Eq, Ord, Generic)
1216
1317makeLenses ''Binding
1418
1519binding :: Lens' Binding (Identifier,Path)
1620binding f (Bind l r) = uncurry Bind `fmap` f (l, r)
1721
22+instance IsString Binding where -- TODO: This instance feels dangerous!
23+ fromString s = Bind i (create path [i]) where i = fromString s
24+
25+instance NFData Binding where rnf = genericRnf
26+
1827instance Default Binding where
1928 def = Bind def def
2029
src/Language/Nix/Path.hs+7−1
@@ -1,8 +1,12 @@
1+{-# LANGUAGE DeriveGeneric #-}
2+
13module Language.Nix.Path ( Path, path ) where
24
35import Internal.Lens
46import Internal.PrettyPrinting ( Pretty (..), char, hcat, punctuate )
57import Language.Nix.Identifier
8+import Control.DeepSeq.Generics
9+import GHC.Generics ( Generic )
610
711-- | Paths are non-empty lists of identifiers in Nix.
812--
@@ -30,7 +34,9 @@ import Language.Nix.Identifier
3034-- *** Exception: invalid Nix path: [Identifier "5ident",Identifier "foo",Identifier "bar"]
3135
3236newtype Path = Path { _segments :: [Identifier] }
33− deriving (Show, Eq, Ord)
37+ deriving (Show, Eq, Ord, Generic)
38+
39+instance NFData Path where rnf = genericRnf
3440
3541instance Default Path where def = Path (error "undefined Nix.Path")
3642
src/cabal2nix.hs+11−2
@@ -3,7 +3,7 @@
33
44module Main ( main ) where
55
6−import Distribution.Nixpkgs.Haskell.FromCabal ( cabal2nix )
6+import Distribution.Nixpkgs.Haskell.FromCabal ( fromGenericPackageDescription )
77import Distribution.Nixpkgs.Haskell.FromCabal.Normalize ( normalize )
88import Internal.HaskellPackage
99import Control.Exception ( bracket )
@@ -14,6 +14,9 @@ import Distribution.Nixpkgs.Fetch
1414import Distribution.Nixpkgs.Haskell
1515import Distribution.Nixpkgs.Meta
1616import Distribution.PackageDescription ( FlagName(..), FlagAssignment )
17+import Distribution.Compiler
18+import Distribution.Version
19+import Distribution.System
1720import Distribution.Simple.Utils ( lowercase )
1821import Internal.PrettyPrinting hiding ( (<>) )
1922import Internal.Version
@@ -88,7 +91,13 @@ main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() -> do
8891 let flags = readFlagList optFlags
8992
9093 deriv :: Derivation
91− deriv = cabal2nix flags (pkgCabal pkg)
94+ deriv = fromGenericPackageDescription (const True)
95+ undefined
96+ (Platform X86_64 Linux)
97+ (unknownCompilerInfo (CompilerId GHC (Version [7,10,2] [])) NoAbiTag)
98+ flags
99+ []
100+ (pkgCabal pkg)
92101 & src .~ pkgSource pkg
93102 & runHaddock .~ optHaddock
94103 & jailbreak .~ optJailbreak
src/hackage2nix.hs+27−3809
@@ -3,11 +3,11 @@
33
44module Main ( main ) where
55
6−import Distribution.Nixpkgs.Haskell.FromCabal.Flags ( configureCabalFlags )
7−import Distribution.Nixpkgs.Haskell.FromCabal ( cabal2nix' )
6+import Distribution.Nixpkgs.Haskell.FromCabal ( fromGenericPackageDescription )
87import Distribution.Nixpkgs.Haskell.FromCabal.HackageGit ( readHackage, Hackage )
8+import Distribution.Nixpkgs.Haskell.Constraint
9+import Distribution.Nixpkgs.Haskell.FromCabal.Configuration.GHC7102
910import Internal.HaskellPackage
10−import Control.Arrow ( second )
1111import Control.Monad
1212import Control.Monad.Par.Combinator
1313import Control.Monad.Par.IO
@@ -20,31 +20,28 @@ import Data.Maybe
2020import Data.Monoid
2121import Data.Set ( Set )
2222import qualified Data.Set as Set
23−import Distribution.Compiler
2423import Distribution.Nixpkgs.Fetch
2524import Distribution.Nixpkgs.Haskell
2625import Distribution.Nixpkgs.Meta
2726import Distribution.Nixpkgs.PackageMap
28−import Distribution.Package
2927import Distribution.PackageDescription hiding ( options, buildDepends, extraLibs, buildTools )
30−import Distribution.PackageDescription.Configuration
31−import Distribution.System
3228import Distribution.Text
29+import Distribution.Package
3330import Distribution.Version
3431import Internal.Lens
3532import Internal.PrettyPrinting hiding ( attr, (<>) )
3633import Internal.Version
37−import Language.Nix.Identifier
38−import Language.Nix.Path
34+import Language.Nix
3935import Options.Applicative
4036import System.FilePath
4137
38+defaultConfiguration :: Configuration
39+defaultConfiguration = ghc7102
40+
4241type Nixpkgs = PackageMap -- Map String (Set [String])
4342type PackageSet = Map String Version
4443type PackageMultiSet = Map String (Set Version)
4544
46−type Constraint = Dependency
47−
4845resolveConstraint :: Constraint -> Hackage -> Version
4946resolveConstraint c = fromMaybe (error ("constraint " ++ display c ++ " cannot be resolved in Hackage")) .
5047 resolveConstraint' c
@@ -54,43 +51,6 @@ resolveConstraint' (Dependency (PackageName name) vrange) hackage | Set.null vs
5451 | otherwise = Just (Set.findMax vs)
5552 where vs = Set.filter (`withinRange` vrange) (Map.keysSet (hackage Map.! name))
5653
57−satisfiesConstraint :: PackageIdentifier -> Constraint -> Bool
58−satisfiesConstraint (PackageIdentifier pn v) (Dependency cn vr) = (pn /= cn) || (v `withinRange` vr)
59−
60−satisfiesConstraints :: PackageIdentifier -> [Constraint] -> Bool
61−satisfiesConstraints p = all (satisfiesConstraint p)
62−
63−data Configuration = Configuration
64− {
65− -- |Target architecture. Used by 'finalizePackageDescription' to
66− -- choose appropriate flags and dependencies.
67− platform :: Platform
68−
69− -- |Target compiler. Used by 'finalizePackageDescription' to choose
70− -- appropriate flags and dependencies.
71− , compilerInfo :: CompilerInfo
72−
73− -- |Core packages found on Hackageg
74− , corePackages :: [PackageIdentifier]
75−
76− -- |Core packages not found on Hackage.
77− , hardCorePackages :: [PackageIdentifier]
78−
79− -- |These packages replace the latest respective version during
80− -- dependency resolution.
81− , defaultPackageOverrides :: [Constraint]
82−
83− -- |These packages are added to the generated set, but the play no
84− -- role during dependency resolution.
85− , extraPackages :: [Constraint]
86−
87− -- |These packages have not succeeded a build yet, so we give them an
88− -- empty meta.hydraPlatforms attribute to avoid cluttering our Hydra
89− -- output with lots of broken builds.
90− , brokenPackages :: Set PackageName
91− }
92− deriving (Read, Show)
93−
9454data Options = Options
9555 { hackageRepository :: FilePath
9656 , nixpkgsRepository :: FilePath
@@ -117,7 +77,7 @@ main = do
11777 Options {..} <- execParser pinfo
11878
11979 hackage <- readHackage hackageRepository
120− nixpkgs <- readNixpkgPackageMap nixpkgsRepository (Just (create path ["pkgs"]))
80+ nixpkgs <- readNixpkgPackageMap nixpkgsRepository Nothing
12181 preferredVersions <- readPreferredVersions (hackageRepository </> "preferred-versions")
12282 let fixup = Map.delete "acme-everything" -- TODO: https://github.com/NixOS/cabal2nix/issues/164
12383 . Map.delete "som" -- TODO: https://github.com/NixOS/cabal2nix/issues/164
@@ -163,15 +123,15 @@ generatePackageSet config hackage nixpkgs = do
163123 , extraPackageSet
164124 ]
165125
166− knownIdentifierSet :: Set Identifier
167− knownIdentifierSet = Set.map (create ident) (Set.union (Map.keysSet hackage) (Map.keysSet corePackageSet))
168−
169− resolver :: Dependency -> Bool
170− resolver (Dependency (PackageName name) vrange)
126+ haskellResolver :: Dependency -> Bool
127+ haskellResolver (Dependency (PackageName name) vrange)
171128 | Just v <- Map.lookup name corePackageSet = v `withinRange` vrange
172129 | Just v <- Map.lookup name generatedDefaultPackageSet = v `withinRange` vrange
173130 | otherwise = False
174131
132+ nixpkgsResolver :: Identifier -> Maybe Binding
133+ nixpkgsResolver = resolve (Map.map (Set.map (over path ("pkgs":))) nixpkgs)
134+
175135 liftIO $ do putStrLn "/* hackage-packages.nix is an auto-generated file -- DO NOT EDIT! */"
176136 putStrLn ""
177137 putStrLn "{ pkgs, stdenv, callPackage }:"
@@ -182,42 +142,13 @@ generatePackageSet config hackage nixpkgs = do
182142 defs <- forM (Set.toAscList vs) $ \pkgversion -> do
183143 let -- TODO: Include list of broken dependencies in the generated output.
184144 descr = hackage Map.! name Map.! pkgversion
185− (missingDeps, _, drv') = cabal2nix resolver descr
186−
187− haskellDependencies :: Set Identifier
188− haskellDependencies = Set.unions [ drv'^.x.haskell | x <- [libraryDepends,executableDepends,testDepends] ]
189−
190− systemDependencies :: Set Identifier
191− systemDependencies = Set.unions [ drv'^.x.y | x <- [libraryDepends,executableDepends,testDepends], y <- [system,pkgconfig] ]
192−
193− haskellOrSystemDependencies :: Set Identifier
194− haskellOrSystemDependencies = Set.unions [ drv'^.x.tool | x <- [libraryDepends,executableDepends,testDepends] ]
195−
196− missing :: Set Identifier
197− missing = Set.filter (`Set.notMember` knownIdentifierSet) haskellDependencies
198−
199− buildInputs :: Map Identifier (Maybe Path)
200− buildInputs = Map.unions
201− [ Map.fromList [ (n, Nothing) | n <- Set.toList missing ]
202− , Map.fromList [ (n, resolveNixpkgsIdentifier nixpkgs n) | n <- Set.toAscList systemDependencies ]
203− , Map.fromList [ (n, resolveHackageThenNixpkgsIdentifier nixpkgs hackage n) | n <- Set.toAscList haskellOrSystemDependencies ]
204− ]
205−
206− systemOverrides :: Doc
207− systemOverrides = fsep (map (uncurry formatOverride) (Map.toAscList buildInputs))
208−
209− formatOverride :: Identifier -> Maybe Path -> Doc
210− formatOverride n Nothing = space <> pPrint n <> text " = null;" -- missing dependency
211− formatOverride n (Just p) = case view path p of
212− [] -> error ("internal error: " ++ show n ++ "resolved to empty path!")
213− ["self"] -> mempty -- callPackage finds this package automatically
214− _ -> (text " inherit" <+> parens (pPrint p) <+> pPrint n) <> semi
215145
216− overrides :: Doc
217− overrides = systemOverrides
146+ drv' :: Derivation
147+ drv' = fromGenericPackageDescription haskellResolver nixpkgsResolver (platform ghc7102) (compilerInfo ghc7102) [] [] descr
218148
149+ attr :: String
219150 attr | Just v <- Map.lookup name generatedDefaultPackageSet, v == pkgversion = name
220− | otherwise = name ++ '_' : [ if c == '.' then '_' else c | c <- display pkgversion ]
151+ | otherwise = name ++ '_' : [ if c == '.' then '_' else c | c <- display pkgversion ]
221152
222153 sha256 :: String
223154 sha256 | Just x <- lookup "X-Package-SHA256" (customFieldsPD (packageDescription descr)) = x
@@ -226,66 +157,25 @@ generatePackageSet config hackage nixpkgs = do
226157 srcSpec <- liftIO $ sourceFromHackage (Certain sha256) (name ++ "-" ++ display pkgversion)
227158
228159 let drv = drv' & src .~ srcSpec
229− & jailbreak .~ (not (null missingDeps) && (name /= "jailbreak-cabal")) -- Dependency constraints aren't fulfilled
230− & metaSection . broken .~ not (Set.null missing) -- Missing Haskell dependencies!
160+ -- TODO: & jailbreak .~ (not (null missingDeps) && (name /= "jailbreak-cabal"))
231161 & metaSection.hydraPlatforms .~ (if PackageName name `Set.member` brokenPackages config
232162 then Set.singleton "stdenv.lib.platforms.none"
233163 else drv'^.metaSection.hydraPlatforms)
234164
165+ isFromHackage :: Binding -> Bool
166+ isFromHackage b = ["self"] `isPrefixOf` view (reference . path) b
167+
168+ overrides :: Doc
169+ overrides = fcat $ punctuate space
170+ [ pPrint b | b <- Set.toList (view (dependencies . each) drv), not (isFromHackage b) ]
171+
172+
235173 return $ nest 2 $ hang (string attr <+> equals <+> text "callPackage") 2 (parens (pPrint drv)) <+> (braces overrides <> semi)
236174 return (intercalate "\n\n" (map render defs))
237175
238176 liftIO $ mapM_ (\pkg -> putStrLn pkg >> putStrLn "") pkgs
239177 liftIO $ putStrLn "}"
240178
241−resolveHackageThenNixpkgsIdentifier :: Nixpkgs -> Hackage -> Identifier -> Maybe Path
242−resolveHackageThenNixpkgsIdentifier nixpkgs hackage name
243− | Just _ <- Map.lookup (view ident name) hackage = Just (create path ["self"])
244− | p@(Just _) <- resolveNixpkgsIdentifier nixpkgs name = p
245− | otherwise = Nothing
246−
247−resolveNixpkgsIdentifier :: Nixpkgs -> Identifier -> Maybe Path
248−resolveNixpkgsIdentifier nixpkgs name
249− | name `elem` ["clang","lldb","llvm"] = Just (create path ["self","llvmPackages"])
250− | Just paths <- Map.lookup name nixpkgs = getShortestPath (Set.toList (paths `Set.intersection` goodScopes))
251− | otherwise = Nothing
252−
253−goodScopes :: Set Path
254−goodScopes = Set.fromList (map (create path . ("pkgs":)) [[], ["xlibs"], ["gnome"], ["gnome3"], ["kde4"]])
255−
256−getShortestPath :: [Path] -> Maybe Path
257−getShortestPath [] = Nothing
258−getShortestPath ps = Just (minimumBy (on compare (view (path . to length))) ps)
259−
260−cabal2nix :: (Dependency -> Bool) -> GenericPackageDescription -> ([Dependency], FlagAssignment, Derivation)
261−cabal2nix resolver cabal = (missingDeps, flags, drv)
262− where
263− drv = cabal2nix' descr
264−
265− Right (descr, flags) = finalize (if null missingDeps then resolver else const True) cabal
266−
267− missingDeps :: [Dependency]
268− missingDeps = either id (const []) (finalize resolver cabal')
269−
270− finalize :: (Dependency -> Bool) -> GenericPackageDescription -> Either [Dependency] (PackageDescription, FlagAssignment)
271− finalize resolver' = finalizePackageDescription
272− (configureCabalFlags (package (packageDescription cabal)))
273− resolver'
274− (platform defaultConfiguration)
275− (compilerInfo defaultConfiguration)
276− [] -- no additional constraints
277−
278− -- A variant of the cabal file that has all test suites enabled to ensure
279− -- that their dependencies are recognized by finalizePackageDescription.
280− cabal' :: GenericPackageDescription
281− cabal' = cabal { condTestSuites = flaggedTests }
282−
283− flaggedTests :: [(String, CondTree ConfVar [Dependency] TestSuite)]
284− flaggedTests = map (second (mapTreeData enableTest)) (condTestSuites cabal)
285−
286− enableTest :: TestSuite -> TestSuite
287− enableTest t = t { testEnabled = True }
288−
289179readPreferredVersions :: FilePath -> IO [Constraint]
290180readPreferredVersions p = mapMaybe parsePreferredVersionsLine . lines <$> readFile p
291181
@@ -294,3675 +184,3 @@ parsePreferredVersionsLine ('-':'-':_) = Nothing
294184parsePreferredVersionsLine l = case simpleParse l of
295185 Just c -> Just c
296186 Nothing -> error ("invalid preferred-versions line: " ++ show l)
297−
298−defaultConfiguration :: Configuration
299−defaultConfiguration = Configuration
300− { platform = Platform X86_64 Linux
301− , compilerInfo = unknownCompilerInfo (CompilerId GHC (Version [7,10,2] [])) NoAbiTag
302−
303− , defaultPackageOverrides = map (\s -> fromMaybe (error (show s ++ " is not a valid override selector")) (simpleParse s))
304− [ "HUnit < 1.3.0.0" -- newer versions break test-framework-hunit-0.3.0.1
305− ]
306−
307− , corePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s))
308− [ "Cabal-1.22.4.0"
309− , "array-0.5.1.0"
310− , "base-4.8.1.0"
311− , "binary-0.7.5.0"
312− , "bytestring-0.10.6.0"
313− , "containers-0.5.6.2"
314− , "deepseq-1.4.1.1"
315− , "directory-1.2.2.0"
316− , "filepath-1.4.0.0"
317− , "ghc-prim-0.4.0.0"
318− , "haskeline-0.7.2.1"
319− , "hoopl-3.10.0.2"
320− , "hpc-0.6.0.2"
321− , "integer-gmp-1.0.0.0"
322− , "pretty-1.1.2.0"
323− , "process-1.2.3.0"
324− , "template-haskell-2.10.0.0"
325− , "terminfo-0.4.0.1"
326− , "time-1.5.0.1"
327− , "transformers-0.4.2.0"
328− , "unix-2.7.1.0"
329− , "xhtml-3000.2.1"
330− ]
331−
332− , hardCorePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s))
333− [ "bin-package-db-0.0.0.0"
334− , "ghc-7.10.2"
335− , "rts-1.0"
336− ]
337−
338− , extraPackages = map (\s -> fromMaybe (error (show s ++ " is not a valid extra package selector")) (simpleParse s))
339− [ "aeson < 0.8" -- newer versions don't work with GHC 6.12.3
340− , "Cabal == 1.18.*" -- required for cabal-install et al on old GHC versions
341− , "Cabal == 1.20.*" -- required for cabal-install et al on old GHC versions
342− , "cabal-install == 1.18.*" -- required for ghc-mod on 7.8.x
343− , "conduit < 1.2.4.2" -- newer versions trigger non-deterministic ID bugs in GHC versions prior to 7.10.x
344− , "containers < 0.5" -- required to build alex with GHC 6.12.3
345− , "control-monad-free < 0.6" -- newer versions don't compile with anything but GHC 7.8.x
346− , "deepseq == 1.3.0.1" -- required to build Cabal with GHC 6.12.3
347− , "descriptive < 0.1" -- required for structured-haskell-mode-1.0.8
348− , "gloss < 1.9.3" -- new versions don't compile with GHC 7.8.x
349− , "haddock-api < 2.16" -- required on GHC 7.8.x
350− , "haskell-src-exts < 1.16" -- required for structured-haskell-mode-1.0.8
351− , "mtl < 2.2" -- newer versions require transformers > 0.4.x, which we cannot provide in GHC 7.8.x
352− , "mtl-prelude < 2" -- required for to build postgrest on mtl 2.1.x platforms
353− , "parallel == 3.2.0.3" -- newer versions don't work with GHC 6.12.3
354− , "primitive == 0.5.1.*" -- required to build alex with GHC 6.12.3
355− , "QuickCheck < 2" -- required by test-framework-quickcheck and its users
356− , "seqid < 0.2" -- newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
357− , "seqid-streams < 0.2" -- newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
358− , "split < 0.2" -- newer versions don't work with GHC 6.12.3
359− , "tar < 0.4.2.0" -- later versions don't work with GHC < 7.6.x
360− , "vector < 0.10.10" -- newer versions don't work with GHC 6.12.3
361− , "zlib < 0.6" -- newer versions break cabal-install
362− ]
363−
364− , brokenPackages = Set.fromList $ map PackageName
365− [ "3dmodels"
366− , "4Blocks"
367− , "abcBridge"
368− , "abstract-par-accelerate"
369− , "abt"
370− , "AC-BuildPlatform"
371− , "accelerate-arithmetic"
372− , "accelerate-fftw"
373− , "accelerate-fourier"
374− , "accelerate-io"
375− , "accelerate-utility"
376− , "accentuateus"
377− , "access-time"
378− , "AC-EasyRaster-GTK"
379− , "AC-HalfInteger"
380− , "ACME"
381− , "acme-hq9plus"
382− , "acme-inator"
383− , "acme-numbersystem"
384− , "acme-schoenfinkel"
385− , "acme-zero"
386− , "AC-MiniTest"
387− , "AC-Terminal"
388− , "ActionKid"
389− , "activehs"
390− , "actor"
391− , "AC-VanillaArray"
392− , "Adaptive"
393− , "Adaptive-Blaisorblade"
394− , "adaptive-containers"
395− , "adaptive-tuple"
396− , "adblock2privoxy"
397− , "adhoc-network"
398− , "adict"
399− , "adobe-swatch-exchange"
400− , "adp-multi"
401− , "adp-multi-monadiccp"
402− , "Advgame"
403− , "AERN-Basics"
404− , "AERN-Net"
405− , "AERN-Real"
406− , "AERN-Real-Double"
407− , "AERN-Real-Interval"
408− , "AERN-RnToRm"
409− , "AERN-RnToRm-Plot"
410− , "aeson-bson"
411− , "AesonBson"
412− , "aeson-native"
413− , "aeson-smart"
414− , "afv"
415− , "Agata"
416− , "agda-server"
417− , "AGI"
418− , "AhoCorasick"
419− , "airbrake"
420− , "aivika-experiment-diagrams"
421− , "aivika-transformers"
422− , "ajhc"
423− , "alea"
424− , "algebraic"
425− , "alms"
426− , "alpha"
427− , "alpino-tools"
428− , "alsa"
429− , "alsa-midi"
430− , "alsa-pcm-tests"
431− , "alsa-seq-tests"
432− , "altfloat"
433− , "alure"
434− , "amazon-emailer"
435− , "amazon-products"
436− , "AMI"
437− , "ampersand"
438− , "anansi-pandoc"
439− , "anatomy"
440− , "android-lint-summary"
441− , "AndroidViewHierarchyImporter"
442− , "angel"
443− , "Animas"
444− , "antfarm"
445− , "anticiv"
446− , "antigate"
447− , "antimirov"
448− , "antlrc"
449− , "anydbm"
450− , "aosd"
451− , "apelsin"
452− , "apiary-helics"
453− , "apiary-purescript"
454− , "apis"
455− , "api-tools"
456− , "apotiki"
457− , "appc"
458− , "app-lens"
459− , "ApplePush"
460− , "AppleScript"
461− , "approx-rand-test"
462− , "arbb-vm"
463− , "arb-fft"
464− , "archiver"
465− , "archlinux"
466− , "archlinux-web"
467− , "arff"
468− , "argparser"
469− , "arguedit"
470− , "ariadne"
471− , "arion"
472− , "armada"
473− , "array-forth"
474− , "ArrayRef"
475− , "arrowapply-utils"
476− , "arrow-improve"
477− , "arrowp"
478− , "ArrowVHDL"
479− , "arx"
480− , "ascii85-conduit"
481− , "asic"
482− , "asil"
483− , "asn1-data"
484− , "AspectAG"
485− , "assimp"
486− , "astrds"
487− , "astview"
488− , "async-extras"
489− , "aterm-utils"
490− , "atlassian-connect-core"
491− , "atlassian-connect-descriptor"
492− , "atom-basic"
493− , "atom-msp430"
494− , "atomo"
495− , "attoparsec-csv"
496− , "attoparsec-iteratee"
497− , "attoparsec-text"
498− , "attoparsec-text-enumerator"
499− , "Attrac"
500− , "atuin"
501− , "augeas"
502− , "augur"
503− , "Aurochs"
504− , "authoring"
505− , "AutoForms"
506− , "autoproc"
507− , "avahi"
508− , "avers"
509− , "AvlTree"
510− , "awesomium"
511− , "awesomium-glut"
512− , "awesomium-raw"
513− , "AWin32Console"
514− , "aws-cloudfront-signer"
515− , "aws-ec2"
516− , "aws-elastic-transcoder"
517− , "aws-kinesis-reshard"
518− , "aws-lambda"
519− , "aws-sdk"
520− , "aws-sdk-text-converter"
521− , "aws-sdk-xml-unordered"
522− , "aws-sign4"
523− , "aws-sns"
524− , "azure-service-api"
525− , "azurify"
526− , "backdropper"
527− , "bag"
528− , "Baggins"
529− , "bamboo"
530− , "bamboo-launcher"
531− , "bamboo-plugin-highlight"
532− , "bamboo-plugin-photo"
533− , "bamboo-theme-blueprint"
534− , "bamboo-theme-mini-html5"
535− , "bamse"
536− , "barcodes-code128"
537− , "barley"
538− , "Barracuda"
539− , "barrie"
540− , "barrier-monad"
541− , "baskell"
542− , "battleships"
543− , "bayes-stack"
544− , "BCMtools"
545− , "beamable"
546− , "beautifHOL"
547− , "bed-and-breakfast"
548− , "Befunge93"
549− , "bein"
550− , "berkeleydb"
551− , "BerkeleyDBXML"
552− , "berp"
553− , "bff"
554− , "bgzf"
555− , "bidirectionalization-combined"
556− , "bidispec"
557− , "billboard-parser"
558− , "billeksah-forms"
559− , "billeksah-main"
560− , "billeksah-pane"
561− , "billeksah-services"
562− , "binary-derive"
563− , "binary-file"
564− , "binary-indexed-tree"
565− , "binary-protocol-zmq"
566− , "binary-streams"
567− , "binary-strict"
568− , "binding-gtk"
569− , "bindings-apr"
570− , "bindings-apr-util"
571− , "bindings-bfd"
572− , "bindings-cctools"
573− , "bindings-codec2"
574− , "bindings-common"
575− , "bindings-dc1394"
576− , "bindings-eskit"
577− , "bindings-EsounD"
578− , "bindings-fann"
579− , "bindings-friso"
580− , "bindings-gts"
581− , "bindings-hdf5"
582− , "bindings-K8055"
583− , "bindings-libftdi"
584− , "bindings-librrd"
585− , "bindings-libstemmer"
586− , "bindings-libv4l2"
587− , "bindings-linux-videodev2"
588− , "bindings-mpdecimal"
589− , "bindings-sc3"
590− , "bindings-sipc"
591− , "bind-marshal"
592− , "bio"
593− , "Biobase"
594− , "BiobaseBlast"
595− , "BiobaseDotP"
596− , "BiobaseFasta"
597− , "BiobaseFR3D"
598− , "BiobaseInfernal"
599− , "BiobaseMAF"
600− , "BiobaseTrainingData"
601− , "BiobaseTurner"
602− , "BiobaseVienna"
603− , "biophd"
604− , "biosff"
605− , "biostockholm"
606− , "bird"
607− , "BirdPP"
608− , "bit-array"
609− , "bitcoin-rpc"
610− , "Bitly"
611− , "bitly-cli"
612− , "bits-conduit"
613− , "bitset"
614− , "bitspeak"
615− , "BitSyntax"
616− , "bittorrent"
617− , "bkr"
618− , "bla"
619− , "black-jewel"
620− , "blakesum"
621− , "blakesum-demo"
622− , "blank-canvas"
623− , "blas"
624− , "blas-hs"
625− , "blaze"
626− , "blaze-html-contrib"
627− , "blaze-html-hexpat"
628− , "blazeMarker"
629− , "blaze-textual-native"
630− , "Blobs"
631− , "blogination"
632− , "BlogLiterately-diagrams"
633− , "Blueprint"
634− , "bluetile"
635− , "board-games"
636− , "bogre-banana"
637− , "Bookshelf"
638− , "boolean-normal-forms"
639− , "bools"
640− , "boolsimplifier"
641− , "boomslang"
642− , "borel"
643− , "bot"
644− , "brainfuck-monad"
645− , "Bravo"
646− , "breakout"
647− , "brians-brain"
648− , "brillig"
649− , "bsd-sysctl"
650− , "bson-generics"
651− , "bson-mapping"
652− , "btree-concurrent"
653− , "buildbox-tools"
654− , "buildwrapper"
655− , "bullet"
656− , "buster"
657− , "Buster"
658− , "buster-gtk"
659− , "buster-network"
660− , "bytable"
661− , "bytestring-class"
662− , "bytestring-csv"
663− , "bytestringparser"
664− , "bytestring-plain"
665− , "bytestringreadp"
666− , "bytestring-rematch"
667− , "bytestring-short"
668− , "cabal2arch"
669− , "cabal2doap"
670− , "cabal2spec"
671− , "cabal-constraints"
672− , "cabal-dev"
673− , "cabal-ghci"
674− , "cabalgraph"
675− , "cabal-graphdeps"
676− , "cabal-install-bundle"
677− , "cabal-install-ghc72"
678− , "cabal-install-ghc74"
679− , "cabalmdvrpm"
680− , "cabal-query"
681− , "cabalrpmdeps"
682− , "cabal-scripts"
683− , "cabal-setup"
684− , "cabal-test"
685− , "cabal-upload"
686− , "cabocha"
687− , "cake3"
688− , "cakyrespa"
689− , "cal3d"
690− , "cal3d-examples"
691− , "cal3d-opengl"
692− , "calc"
693− , "caldims"
694− , "caledon"
695− , "call-haskell-from-anything"
696− , "campfire"
697− , "cantor"
698− , "cao"
699− , "cap"
700− , "Capabilities"
701− , "capri"
702− , "carboncopy"
703− , "carettah"
704− , "casadi-bindings"
705− , "casadi-bindings-control"
706− , "casadi-bindings-core"
707− , "casadi-bindings-internal"
708− , "casadi-bindings-ipopt-interface"
709− , "casadi-bindings-snopt-interface"
710− , "Cascade"
711− , "cascading"
712− , "cash"
713− , "cassandra-thrift"
714− , "cassava-streams"
715− , "cassy"
716− , "casui"
717− , "Catana"
718− , "catch-fd"
719− , "categorical-algebra"
720− , "category-extras"
721− , "CBOR"
722− , "CC-delcont"
723− , "CC-delcont-alt"
724− , "CC-delcont-cxe"
725− , "CC-delcont-exc"
726− , "CC-delcont-ref"
727− , "CC-delcont-ref-tf"
728− , "cci"
729− , "cctools-workqueue"
730− , "cedict"
731− , "ceilometer-common"
732− , "cereal-enumerator"
733− , "cereal-ieee754"
734− , "cereal-plus"
735− , "certificate"
736− , "cf"
737− , "cfipu"
738− , "cflp"
739− , "cfopu"
740− , "cgen"
741− , "cgi-utils"
742− , "chalkboard"
743− , "chalkboard-viewer"
744− , "charade"
745− , "Chart-diagrams"
746− , "chatter"
747− , "checked"
748− , "check-pvp"
749− , "chevalier-common"
750− , "Chitra"
751− , "chp"
752− , "chp-mtl"
753− , "chp-plus"
754− , "chp-spec"
755− , "chp-transformers"
756− , "ChristmasTree"
757− , "chronograph"
758− , "chuchu"
759− , "chunks"
760− , "church-list"
761− , "cil"
762− , "cinvoke"
763− , "c-io"
764− , "cio"
765− , "citation-resolve"
766− , "citeproc-hs"
767− , "citeproc-hs-pandoc-filter"
768− , "cjk"
769− , "clac"
770− , "clafer"
771− , "claferIG"
772− , "claferwiki"
773− , "CLASE"
774− , "clash"
775− , "clash-ghc"
776− , "clash-prelude"
777− , "clash-prelude-quickcheck"
778− , "clash-systemverilog"
779− , "clash-vhdl"
780− , "ClassLaws"
781− , "ClassyPrelude"
782− , "clckwrks"
783− , "clckwrks-cli"
784− , "clckwrks-dot-com"
785− , "clckwrks-plugin-bugs"
786− , "clckwrks-plugin-ircbot"
787− , "clckwrks-plugin-media"
788− , "clckwrks-plugin-page"
789− , "clckwrks-theme-bootstrap"
790− , "clckwrks-theme-clckwrks"
791− , "clckwrks-theme-geo-bootstrap"
792− , "Clean"
793− , "clevercss"
794− , "clifford"
795− , "clipper"
796− , "clippings"
797− , "clocked"
798− , "clogparse"
799− , "clone-all"
800− , "cloudfront-signer"
801− , "cloud-haskell"
802− , "cloudyfs"
803− , "clua"
804− , "cluss"
805− , "clustering"
806− , "clustertools"
807− , "clutterhs"
808− , "cmaes"
809− , "cmath"
810− , "cmathml3"
811− , "CMCompare"
812− , "cmdargs-browser"
813− , "cmdtheline"
814− , "cmonad"
815− , "cnc-spec-compiler"
816− , "cndict"
817− , "Coadjute"
818− , "Codec-Image-DevIL"
819− , "codec-libevent"
820− , "codecov-haskell"
821− , "codemonitor"
822− , "codepad"
823− , "cognimeta-utils"
824− , "coinbase-exchange"
825− , "colada"
826− , "collada-output"
827− , "collada-types"
828− , "collections"
829− , "collections-api"
830− , "collections-base-instances"
831− , "coltrane"
832− , "com"
833− , "combinat"
834− , "combinat-diagrams"
835− , "combinatorial-problems"
836− , "combinator-interactive"
837− , "Combinatorrent"
838− , "Commando"
839− , "commodities"
840− , "commsec"
841− , "commsec-keyexchange"
842− , "comonad-extras"
843− , "comonad-random"
844− , "compact-map"
845− , "compact-string"
846− , "compilation"
847− , "complexity"
848− , "compose-trans"
849− , "compression"
850− , "compstrat"
851− , "comptrans"
852− , "computational-algebra"
853− , "concraft"
854− , "concraft-hr"
855− , "concraft-pl"
856− , "concrete-typerep"
857− , "concurrent-state"
858− , "ConcurrentUtils"
859− , "condor"
860− , "Condor"
861− , "condorcet"
862− , "conductive-clock"
863− , "conductive-hsc3"
864− , "conduit-audio-lame"
865− , "conduit-audio-samplerate"
866− , "conduit-iconv"
867− , "conduit-network-stream"
868− , "conduit-resumablesink"
869− , "Configger"
870− , "config-select"
871− , "conjure"
872− , "consistent"
873− , "const-math-ghc-plugin"
874− , "constrained-categories"
875− , "constructive-algebra"
876− , "consul-haskell"
877− , "Consumer"
878− , "context-stack"
879− , "continue"
880− , "continuum"
881− , "continuum-client"
882− , "Contract"
883− , "control-event"
884− , "control-monad-attempt"
885− , "control-monad-exception-mtl"
886− , "control-monad-failure"
887− , "control-monad-failure-mtl"
888− , "Control-Monad-MultiPass"
889− , "Control-Monad-ST2"
890− , "contstuff-monads-tf"
891− , "contstuff-transformers"
892− , "convertible-ascii"
893− , "convertible-text"
894− , "copilot"
895− , "copilot-c99"
896− , "copilot-cbmc"
897− , "copilot-core"
898− , "copilot-language"
899− , "copilot-libraries"
900− , "copilot-sbv"
901− , "COrdering"
902− , "core"
903− , "corebot-bliki"
904− , "CoreErlang"
905− , "CoreFoundation"
906− , "core-haskell"
907− , "Coroutine"
908− , "coroutine-iteratee"
909− , "CouchDB"
910− , "couchdb-conduit"
911− , "couchdb-enumerator"
912− , "couch-hs"
913− , "court"
914− , "CPBrainfuck"
915− , "cpio-conduit"
916− , "CPL"
917− , "cplusplus-th"
918− , "cpsa"
919− , "cpuperf"
920− , "cpython"
921− , "cqrs"
922− , "cqrs-example"
923− , "cqrs-postgresql"
924− , "cqrs-sqlite3"
925− , "cqrs-test"
926− , "cqrs-types"
927− , "cr"
928− , "crack"
929− , "Craft3e"
930− , "craftwerk"
931− , "craftwerk-cairo"
932− , "craftwerk-gtk"
933− , "crc16"
934− , "crf-chain1"
935− , "crf-chain1-constrained"
936− , "crf-chain2-generic"
937− , "crf-chain2-tiers"
938− , "criterion-plus"
939− , "crocodile"
940− , "crunghc"
941− , "crypto-cipher-benchmarks"
942− , "cryptsy-api"
943− , "crystalfontz"
944− , "cse-ghc-plugin"
945− , "csound-catalog"
946− , "csound-expression"
947− , "csound-expression-opcodes"
948− , "csound-expression-typed"
949− , "csound-sampler"
950− , "csp"
951− , "cspmchecker"
952− , "CSPM-cspm"
953− , "CSPM-FiringRules"
954− , "CSPM-Frontend"
955− , "CSPM-Interpreter"
956− , "CSPM-ToProlog"
957− , "css"
958− , "ctemplate"
959− , "ctkl"
960− , "ctpl"
961− , "cudd"
962− , "curry-base"
963− , "CurryDB"
964− , "curry-frontend"
965− , "cursedcsv"
966− , "curves"
967− , "CV"
968− , "cypher"
969− , "dag"
970− , "DAG-Tournament"
971− , "Dangerous"
972− , "dao"
973− , "Dao"
974− , "dapi"
975− , "darcs2dot"
976− , "darcs-benchmark"
977− , "darcs-beta"
978− , "darcs-buildpackage"
979− , "darcs-cabalized"
980− , "darcsden"
981− , "darcs-graph"
982− , "DarcsHelpers"
983− , "darcs-monitor"
984− , "darcs-scripts"
985− , "darcswatch"
986− , "darkplaces-demo"
987− , "data-cycle"
988− , "data-dispersal"
989− , "data-easy"
990− , "data-extra"
991− , "data-ivar"
992− , "data-lens-ixset"
993− , "datalog"
994− , "data-named"
995− , "data-nat"
996− , "data-object-json"
997− , "data-object-yaml"
998− , "data-quotientref"
999− , "data-rope"
1000− , "Data-Rope"
1001− , "data-store"
1002− , "DataTreeView"
1003− , "data-type"
1004− , "dbjava"
1005− , "d-bus"
1006− , "DBus"
1007− , "dbus-client"
1008− , "dbus-core"
1009− , "dclabel"
1010− , "ddc-build"
1011− , "ddc-core"
1012− , "ddc-core-eval"
1013− , "ddc-core-flow"
1014− , "ddc-core-llvm"
1015− , "ddc-core-salt"
1016− , "ddc-core-simpl"
1017− , "ddc-core-tetra"
1018− , "ddc-driver"
1019− , "ddci-core"
1020− , "ddc-source-tetra"
1021− , "ddc-tools"
1022− , "Deadpan-DDP"
1023− , "dead-simple-json"
1024− , "decepticons"
1025− , "DecisionTree"
1026− , "decoder-conduit"
1027− , "dedukti"
1028− , "deeplearning-hs"
1029− , "deepseq-bounded"
1030− , "deepseq-th"
1031− , "deepzoom"
1032− , "defargs"
1033− , "DefendTheKing"
1034− , "definitive-base"
1035− , "definitive-filesystem"
1036− , "definitive-graphics"
1037− , "definitive-parser"
1038− , "definitive-reactive"
1039− , "definitive-sound"
1040− , "deka"
1041− , "deka-tests"
1042− , "delicious"
1043− , "delta-h"
1044− , "demarcate"
1045− , "denominate"
1046− , "depends"
1047− , "dephd"
1048− , "dequeue"
1049− , "derangement"
1050− , "derivation-trees"
1051− , "derive-gadt"
1052− , "derive-IG"
1053− , "derive-topdown"
1054− , "derive-trie"
1055− , "derp-lib"
1056− , "dewdrop"
1057− , "Dflow"
1058− , "dfsbuild"
1059− , "dgim"
1060− , "dgs"
1061− , "diagrams-builder"
1062− , "diagrams-canvas"
1063− , "diagrams-haddock"
1064− , "diagrams-hsqml"
1065− , "diagrams-pdf"
1066− , "diagrams-pgf"
1067− , "diagrams-qrcode"
1068− , "diagrams-tikz"
1069− , "dice-entropy-conduit"
1070− , "dicom"
1071− , "dictparser"
1072− , "diffcabal"
1073− , "DifferenceLogic"
1074− , "DifferentialEvolution"
1075− , "digestive-functors-hsp"
1076− , "DimensionalHash"
1077− , "dingo-core"
1078− , "dingo-example"
1079− , "dingo-widgets"
1080− , "diophantine"
1081− , "direct-binary-files"
1082− , "directed-cubical"
1083− , "direct-fastcgi"
1084− , "direct-http"
1085− , "direct-plugins"
1086− , "DirectSound"
1087− , "dirfiles"
1088− , "discount"
1089− , "disjoint-set"
1090− , "DisTract"
1091− , "distributed-process-async"
1092− , "distributed-process-azure"
1093− , "distributed-process-client-server"
1094− , "distributed-process-execution"
1095− , "distributed-process-extras"
1096− , "distributed-process-platform"
1097− , "distributed-process-registry"
1098− , "distributed-process-supervisor"
1099− , "distributed-process-task"
1100− , "distributed-process-tests"
1101− , "distributed-process-zookeeper"
1102− , "distribution"
1103− , "distribution-plot"
1104− , "dist-upload"
1105− , "djinn-th"
1106− , "DnaProteinAlignment"
1107− , "dnscache"
1108− , "dnssd"
1109− , "doccheck"
1110− , "docidx"
1111− , "docker"
1112− , "dockercook"
1113− , "doc-review"
1114− , "DocTest"
1115− , "doctest-discover"
1116− , "doctest-discover-configurator"
1117− , "DOM"
1118− , "download"
1119− , "download-media-content"
1120− , "DP"
1121− , "dph-examples"
1122− , "dph-lifted-base"
1123− , "dph-lifted-copy"
1124− , "dph-lifted-vseg"
1125− , "dph-par"
1126− , "dph-prim-par"
1127− , "dph-seq"
1128− , "DPM"
1129− , "drClickOn"
1130− , "DrHylo"
1131− , "DrIFT"
1132− , "DrIFT-cabalized"
1133− , "dropbox-sdk"
1134− , "dropsolve"
1135− , "ds-kanren"
1136− , "dsmc"
1137− , "dsmc-tools"
1138− , "dsp"
1139− , "DSTM"
1140− , "dstring"
1141− , "dtab"
1142− , "DTC"
1143− , "dtd"
1144− , "dtd-text"
1145− , "dtd-types"
1146− , "dtw"
1147− , "duplo"
1148− , "Dust"
1149− , "Dust-crypto"
1150− , "Dust-tools"
1151− , "Dust-tools-pcap"
1152− , "dvda"
1153− , "dvdread"
1154− , "dx9base"
1155− , "dx9d3d"
1156− , "dx9d3dx"
1157− , "dynamic-object"
1158− , "dynamic-plot"
1159− , "dynamic-pp"
1160− , "DynamicTimeWarp"
1161− , "dynobud"
1162− , "DysFRP-Cairo"
1163− , "DysFRP-Craftwerk"
1164− , "easy-api"
1165− , "easyjson"
1166− , "easyplot"
1167− , "easyrender"
1168− , "ecdsa"
1169− , "ecu"
1170− , "ed25519"
1171− , "edenmodules"
1172− , "edenskel"
1173− , "edentv"
1174− , "edge"
1175− , "EdisonCore"
1176− , "editable"
1177− , "edit-lenses"
1178− , "editline"
1179− , "EditTimeReport"
1180− , "EEConfig"
1181− , "effective-aspects"
1182− , "effective-aspects-mzv"
1183− , "effect-monad"
1184− , "egison-quote"
1185− , "ehaskell"
1186− , "ehs"
1187− , "eibd-client-simple"
1188− , "eithers"
1189− , "EitherT"
1190− , "Elm"
1191− , "elm-build-lib"
1192− , "elm-compiler"
1193− , "elm-get"
1194− , "elm-make"
1195− , "elm-package"
1196− , "elm-reactor"
1197− , "elm-repl"
1198− , "elm-server"
1199− , "elm-yesod"
1200− , "email"
1201− , "email-header"
1202− , "email-postmark"
1203− , "embeddock"
1204− , "embeddock-example"
1205− , "embroidery"
1206− , "emgm"
1207− , "Emping"
1208− , "empty"
1209− , "Encode"
1210− , "enumfun"
1211− , "EnumMap"
1212− , "enummapmap"
1213− , "env-parser"
1214− , "epoll"
1215− , "epubname"
1216− , "Eq"
1217− , "equational-reasoning"
1218− , "erlang"
1219− , "eros-client"
1220− , "error-message"
1221− , "ersatz"
1222− , "ersatz-toysat"
1223− , "esotericbot"
1224− , "EsounD"
1225− , "estimators"
1226− , "estreps"
1227− , "Etage"
1228− , "Etage-Graph"
1229− , "EtaMOO"
1230− , "eternal"
1231− , "Eternal10Seconds"
1232− , "Etherbunny"
1233− , "ethereum-client-haskell"
1234− , "ethereum-merkle-patricia-db"
1235− , "euphoria"
1236− , "eurofxref"
1237− , "Euterpea"
1238− , "event-driven"
1239− , "event-monad"
1240− , "EventSocket"
1241− , "every-bit-counts"
1242− , "ewe"
1243− , "exif"
1244− , "exists"
1245− , "expand"
1246− , "expat-enumerator"
1247− , "explain"
1248− , "explicit-sharing"
1249− , "explore"
1250− , "exposed-containers"
1251− , "exp-pairs"
1252− , "extcore"
1253− , "extemp"
1254− , "extended-categories"
1255− , "external-sort"
1256− , "ez-couch"
1257− , "faceted"
1258− , "factual-api"
1259− , "FailureT"
1260− , "fallingblocks"
1261− , "falling-turnip"
1262− , "fastirc"
1263− , "fast-tags"
1264− , "fault-tree"
1265− , "fay-hsx"
1266− , "fcd"
1267− , "fckeditor"
1268− , "FComp"
1269− , "fdo-trash"
1270− , "feed2lj"
1271− , "feed2twitter"
1272− , "feed-cli"
1273− , "feldspar-compiler"
1274− , "feldspar-language"
1275− , "fences"
1276− , "fenfire"
1277− , "FermatsLastMargin"
1278− , "FerryCore"
1279− , "ffeed"
1280− , "ffmpeg-tutorials"
1281− , "fibon"
1282− , "fields"
1283− , "FieldTrip"
1284− , "fieldwise"
1285− , "FileManip"
1286− , "FileManipCompat"
1287− , "FileSystem"
1288− , "filesystem-conduit"
1289− , "filesystem-enumerator"
1290− , "Finance-Quote-Yahoo"
1291− , "Finance-Treasury"
1292− , "find-conduit"
1293− , "FiniteMap"
1294− , "firstify"
1295− , "FirstOrderTheory"
1296− , "fit"
1297− , "fitsio"
1298− , "fixed-point"
1299− , "fixed-point-vector"
1300− , "fixed-point-vector-space"
1301− , "fixed-precision"
1302− , "fixed-storable-array"
1303− , "fix-parser-simple"
1304− , "fixplate"
1305− , "fix-symbols-gitit"
1306− , "flexiwrap"
1307− , "flexiwrap-smallcheck"
1308− , "flickr"
1309− , "Flippi"
1310− , "flite"
1311− , "flo"
1312− , "floating-bits"
1313− , "flow2dot"
1314− , "flowdock-api"
1315− , "flower"
1316− , "flowlocks-framework"
1317− , "flowsim"
1318− , "FModExRaw"
1319− , "FM-SBLEX"
1320− , "foldl-incremental"
1321− , "folds"
1322− , "folds-common"
1323− , "follower"
1324− , "Folly"
1325− , "foma"
1326− , "font-opengl-basic4x6"
1327− , "foo"
1328− , "forbidden-fruit"
1329− , "fordo"
1330− , "for-free"
1331− , "formal"
1332− , "format"
1333− , "format-status"
1334− , "forml"
1335− , "formlets"
1336− , "formlets-hsp"
1337− , "ForSyDe"
1338− , "forth-hll"
1339− , "Foster"
1340− , "fpco-api"
1341− , "fpnla-examples"
1342− , "FPretty"
1343− , "frag"
1344− , "franchise"
1345− , "Frank"
1346− , "free-game"
1347− , "freekick2"
1348− , "freenect"
1349− , "free-operational"
1350− , "freesect"
1351− , "freesound"
1352− , "free-theorems"
1353− , "free-theorems-counterexamples"
1354− , "free-theorems-seq"
1355− , "free-theorems-seq-webui"
1356− , "free-theorems-webui"
1357− , "FreeTypeGL"
1358− , "frp-arduino"
1359− , "fs-events"
1360− , "fsmActions"
1361− , "fswatcher"
1362− , "ftdi"
1363− , "ftp-conduit"
1364− , "ftshell"
1365− , "full-sessions"
1366− , "fullstop"
1367− , "functional-arrow"
1368− , "function-combine"
1369− , "functor-apply"
1370− , "functorm"
1371− , "funion"
1372− , "funsat"
1373− , "future"
1374− , "fuzzytime"
1375− , "gact"
1376− , "gameclock"
1377− , "game-of-life"
1378− , "Ganymede"
1379− , "gc-monitoring-wai"
1380− , "gdiff-ig"
1381− , "gdiff-th"
1382− , "geek"
1383− , "geek-server"
1384− , "gemstone"
1385− , "gencheck"
1386− , "gender"
1387− , "genders"
1388− , "general-prelude"
1389− , "GeneralTicTacToe"
1390− , "generators"
1391− , "generic-church"
1392− , "genericserialize"
1393− , "generic-storable"
1394− , "generic-xml"
1395− , "genetics"
1396− , "GenI"
1397− , "geniconvert"
1398− , "geni-gui"
1399− , "geniserver"
1400− , "geni-util"
1401− , "GenSmsPdu"
1402− , "geodetics"
1403− , "GeoIp"
1404− , "GeomPredicates-SSE"
1405− , "getemx"
1406− , "getflag"
1407− , "ggtsTC"
1408− , "ghc-dup"
1409− , "ghc-events-analyze"
1410− , "ghc-events-parallel"
1411− , "ghc-exactprint"
1412− , "ghci-haskeline"
1413− , "ghci-ng"
1414− , "ghclive"
1415− , "ghc-parmake"
1416− , "ghc-pkg-autofix"
1417− , "ghc-pkg-lib"
1418− , "ghc-server"
1419− , "ghc-syb"
1420− , "GHood"
1421− , "ght"
1422− , "ginsu"
1423− , "gipeda"
1424− , "gist"
1425− , "git-all"
1426− , "git-checklist"
1427− , "git-date"
1428− , "gitdo"
1429− , "git-gpush"
1430− , "gitlib-cross"
1431− , "gitlib-libgit2"
1432− , "gitlib-s3"
1433− , "gitlib-utils"
1434− , "git-monitor"
1435− , "git-repair"
1436− , "gitson"
1437− , "glade"
1438− , "gladexml-accessor"
1439− , "GLFW-OGL"
1440− , "glider-nlp"
1441− , "global"
1442− , "glome-hs"
1443− , "GlomeTrace"
1444− , "GlomeView"
1445− , "gloss-devil"
1446− , "gmap"
1447− , "gmndl"
1448− , "gnome-desktop"
1449− , "gnome-keyring"
1450− , "gnomevfs"
1451− , "g-npm"
1452− , "goa"
1453− , "goatee"
1454− , "goatee-gtk"
1455− , "gofer-prelude"
1456− , "google-drive"
1457− , "google-html5-slide"
1458− , "google-mail-filters"
1459− , "googleplus"
1460− , "GoogleSB"
1461− , "google-search"
1462− , "gopherbot"
1463− , "gpah"
1464− , "GPipe"
1465− , "GPipe-Collada"
1466− , "GPipe-Examples"
1467− , "GPipe-TextureLoad"
1468− , "gps"
1469− , "gps2htmlReport"
1470− , "GPX"
1471− , "gpx-conduit"
1472− , "grapefruit-examples"
1473− , "grapefruit-frp"
1474− , "grapefruit-records"
1475− , "grapefruit-ui"
1476− , "grapefruit-ui-gtk"
1477− , "Graph500"
1478− , "graphbuilder"
1479− , "GraphHammer"
1480− , "GraphHammer-examples"
1481− , "graphicsFormats"
1482− , "graphics-formats-collada"
1483− , "graphicstools"
1484− , "graph-rewriting"
1485− , "graph-rewriting-cl"
1486− , "graph-rewriting-gl"
1487− , "graph-rewriting-lambdascope"
1488− , "graph-rewriting-layout"
1489− , "graph-rewriting-ski"
1490− , "graph-rewriting-strategies"
1491− , "graph-rewriting-trs"
1492− , "graph-rewriting-ww"
1493− , "graphtype"
1494− , "graph-utils"
1495− , "greencard"
1496− , "greencard-lib"
1497− , "greg-client"
1498− , "Grempa"
1499− , "gridland"
1500− , "grm"
1501− , "Grow"
1502− , "GrowlNotify"
1503− , "gruff"
1504− , "gruff-examples"
1505− , "gsl-random"
1506− , "gsl-random-fu"
1507− , "gsmenu"
1508− , "gstreamer"
1509− , "GTALib"
1510− , "gtfs"
1511− , "gtk2hs-cast-glade"
1512− , "gtk2hs-cast-gnomevfs"
1513− , "gtk2hs-cast-gtk"
1514− , "gtk2hs-cast-gtkglext"
1515− , "Gtk2hsGenerics"
1516− , "gtk2hs-rpn"
1517− , "gtk3-mac-integration"
1518− , "gtkglext"
1519− , "GtkGLTV"
1520− , "gtkimageview"
1521− , "gtk-mac-integration"
1522− , "gtkrsync"
1523− , "gtk-serialized-event"
1524− , "gtk-toy"
1525− , "guess-combinator"
1526− , "GuiHaskell"
1527− , "GuiTV"
1528− , "h2048"
1529− , "haar"
1530− , "Hach"
1531− , "hack2-handler-happstack-server"
1532− , "hack2-handler-mongrel2-http"
1533− , "hack2-handler-warp"
1534− , "hack2-interface-wai"
1535− , "hackage2hwn"
1536− , "hackage2twitter"
1537− , "hackage-mirror"
1538− , "hackage-proxy"
1539− , "hackage-server"
1540− , "hackage-sparks"
1541− , "hack-contrib"
1542− , "hack-contrib-press"
1543− , "hackernews"
1544− , "hack-frontend-happstack"
1545− , "hack-handler-epoll"
1546− , "hack-handler-evhttp"
1547− , "hack-handler-fastcgi"
1548− , "hack-handler-happstack"
1549− , "hack-handler-hyena"
1550− , "hack-handler-kibro"
1551− , "hack-handler-simpleserver"
1552− , "HackMail"
1553− , "hack-middleware-cleanpath"
1554− , "hack-middleware-clientsession"
1555− , "hack-middleware-jsonp"
1556− , "hackport"
1557− , "hactor"
1558− , "haddock-leksah"
1559− , "haddocset"
1560− , "haggis"
1561− , "Haggressive"
1562− , "hairy"
1563− , "hakaru"
1564− , "hakismet"
1565− , "hakyll-blaze-templates"
1566− , "hakyll-contrib"
1567− , "hakyll-contrib-links"
1568− , "hakyll-convert"
1569− , "hakyll-elm"
1570− , "hakyll-R"
1571− , "halberd"
1572− , "HaLeX"
1573− , "halfs"
1574− , "halipeto"
1575− , "halive"
1576− , "hampp"
1577− , "hamtmap"
1578− , "hamusic"
1579− , "handle-like"
1580− , "hans"
1581− , "hans-pcap"
1582− , "happindicator"
1583− , "happindicator3"
1584− , "happraise"
1585− , "HAppS-Data"
1586− , "HAppSHelpers"
1587− , "happs-hsp"
1588− , "happs-hsp-template"
1589− , "HAppS-IxSet"
1590− , "HAppS-Server"
1591− , "HAppS-State"
1592− , "happstack-auth"
1593− , "happstack-contrib"
1594− , "happstack-data"
1595− , "happstack-dlg"
1596− , "happstack-facebook"
1597− , "happstack-fay"
1598− , "happstack-foundation"
1599− , "happstack-heist"
1600− , "happstack-helpers"
1601− , "happstack-hsp"
1602− , "happstack-ixset"
1603− , "happstack-monad-peel"
1604− , "happstack-plugins"
1605− , "happstack-state"
1606− , "happstack-util"
1607− , "happstack-yui"
1608− , "happs-tutorial"
1609− , "HAppS-Util"
1610− , "happybara"
1611− , "happybara-webkit"
1612− , "happybara-webkit-server"
1613− , "harchive"
1614− , "hark"
1615− , "HARM"
1616− , "HarmTrace"
1617− , "HarmTrace-Base"
1618− , "has"
1619− , "hascal"
1620− , "hascat"
1621− , "hascat-lib"
1622− , "hascat-setup"
1623− , "hascat-system"
1624− , "Haschoo"
1625− , "HasGP"
1626− , "hash"
1627− , "hashable-generics"
1628− , "hashed-storage"
1629− , "Hashell"
1630− , "hasim"
1631− , "hask"
1632− , "haskanoid"
1633− , "haskarrow"
1634− , "haskeem"
1635− , "haskeline-class"
1636− , "haskell2010"
1637− , "haskell98"
1638− , "haskell-aliyun"
1639− , "haskell-awk"
1640− , "haskell-bcrypt"
1641− , "haskell-brainfuck"
1642− , "haskell-cnc"
1643− , "haskell-course-preludes"
1644− , "haskelldb-connect-hdbc"
1645− , "haskelldb-connect-hdbc-catchio-mtl"
1646− , "haskelldb-connect-hdbc-catchio-tf"
1647− , "haskelldb-connect-hdbc-catchio-transformers"
1648− , "haskelldb-connect-hdbc-lifted"
1649− , "haskelldb-dynamic"
1650− , "haskelldb-hdbc"
1651− , "haskelldb-hdbc-mysql"
1652− , "haskelldb-hdbc-odbc"
1653− , "haskelldb-hdbc-postgresql"
1654− , "haskelldb-hdbc-sqlite3"
1655− , "haskelldb-hsql"
1656− , "haskelldb-hsql-mysql"
1657− , "haskelldb-hsql-odbc"
1658− , "haskelldb-hsql-postgresql"
1659− , "haskelldb-hsql-sqlite3"
1660− , "haskelldb-wx"
1661− , "haskell-docs"
1662− , "haskell-formatter"
1663− , "haskell-ftp"
1664− , "haskell-in-space"
1665− , "haskell-neo4j-client"
1666− , "HaskellNN"
1667− , "Haskelloids"
1668− , "haskell-openflow"
1669− , "haskell-pdf-presenter"
1670− , "haskell-platform-test"
1671− , "haskell-plot"
1672− , "haskell-reflect"
1673− , "haskell-rules"
1674− , "haskellscrabble"
1675− , "haskell-src-meta-mwotton"
1676− , "HaskellTorrent"
1677− , "haskell-type-exts"
1678− , "haskell-tyrant"
1679− , "haskell-xmpp"
1680− , "haskelm"
1681− , "haskgame"
1682− , "haskheap"
1683− , "haskhol-core"
1684− , "hask-home"
1685− , "haskmon"
1686− , "haskoin"
1687− , "haskoin-crypto"
1688− , "haskoin-protocol"
1689− , "haskoin-script"
1690− , "haskoin-util"
1691− , "haskoin-wallet"
1692− , "haskoon"
1693− , "haskoon-httpspec"
1694− , "haskoon-salvia"
1695− , "haskore"
1696− , "haskore-realtime"
1697− , "haskore-supercollider"
1698− , "haskore-synthesizer"
1699− , "haskore-vintage"
1700− , "haslo"
1701− , "hasloGUI"
1702− , "hasparql-client"
1703− , "hastache-aeson"
1704− , "haste-compiler"
1705− , "haste-perch"
1706− , "has-th"
1707− , "hatex-guide"
1708− , "HaTeX-meta"
1709− , "haverer"
1710− , "HaVSA"
1711− , "hawitter"
1712− , "Hawk"
1713− , "haxparse"
1714− , "hayland"
1715− , "Hayoo"
1716− , "hayoo-cli"
1717− , "hback"
1718− , "hbayes"
1719− , "hBDD-CMUBDD"
1720− , "hBDD-CUDD"
1721− , "hbeat"
1722− , "hblas"
1723− , "hblock"
1724− , "h-booru"
1725− , "hburg"
1726− , "HCard"
1727− , "hcheat"
1728− , "hchesslib"
1729− , "HCL"
1730− , "hcron"
1731− , "hCsound"
1732− , "hcube"
1733− , "hcwiid"
1734− , "hdaemonize-buildfix"
1735− , "HDBC-mysql"
1736− , "hdbi"
1737− , "hdbi-conduit"
1738− , "hdbi-postgresql"
1739− , "hdbi-sqlite"
1740− , "hdbi-tests"
1741− , "hDFA"
1742− , "hdigest"
1743− , "hdirect"
1744− , "hdis86"
1745− , "hdiscount"
1746− , "hdm"
1747− , "hdph"
1748− , "hdph-closure"
1749− , "HDRUtils"
1750− , "hecc"
1751− , "Hedi"
1752− , "hedn"
1753− , "heist-aeson"
1754− , "helics"
1755− , "helics-wai"
1756− , "helium"
1757− , "hell"
1758− , "hellage"
1759− , "hellnet"
1760− , "helm"
1761− , "hemkay"
1762− , "hemokit"
1763− , "hen"
1764− , "henet"
1765− , "hepevt"
1766− , "HERA"
1767− , "herbalizer"
1768− , "her-lexer"
1769− , "her-lexer-parsec"
1770− , "Hermes"
1771− , "hermit"
1772− , "hermit-syb"
1773− , "herringbone"
1774− , "herringbone-embed"
1775− , "herringbone-wai"
1776− , "hesql"
1777− , "hetris"
1778− , "heukarya"
1779− , "hevolisa"
1780− , "hevolisa-dph"
1781− , "hexpat-iteratee"
1782− , "hexpat-pickle-generic"
1783− , "hexquote"
1784− , "hF2"
1785− , "hfann"
1786− , "hfd"
1787− , "hfiar"
1788− , "hfractal"
1789− , "hfsevents"
1790− , "hfusion"
1791− , "hgalib"
1792− , "HGamer3D"
1793− , "HGamer3D-API"
1794− , "HGamer3D-Audio"
1795− , "HGamer3D-CAudio-Binding"
1796− , "HGamer3D-CEGUI-Binding"
1797− , "HGamer3D-Enet-Binding"
1798− , "HGamer3D-Graphics3D"
1799− , "HGamer3D-GUI"
1800− , "HGamer3D-InputSystem"
1801− , "HGamer3D-Network"
1802− , "HGamer3D-Ogre-Binding"
1803− , "HGamer3D-OIS-Binding"
1804− , "HGamer3D-SDL2-Binding"
1805− , "HGamer3D-SFML-Binding"
1806− , "HGamer3D-WinEvent"
1807− , "HGamer3D-Wire"
1808− , "hg-buildpackage"
1809− , "hgen"
1810− , "hgeometric"
1811− , "hgithub"
1812− , "HGL"
1813− , "hgom"
1814− , "h-gpgme"
1815− , "HGraphStorage"
1816− , "hharp"
1817− , "HHDL"
1818− , "hiccup"
1819− , "hichi"
1820− , "hieraclus"
1821− , "hierarchical-clustering-diagrams"
1822− , "hiernotify"
1823− , "Hieroglyph"
1824− , "HiggsSet"
1825− , "higherorder"
1826− , "highWaterMark"
1827− , "himg"
1828− , "himpy"
1829− , "hinduce-classifier"
1830− , "hinduce-classifier-decisiontree"
1831− , "hinduce-examples"
1832− , "hinvaders"
1833− , "hinze-streams"
1834− , "hipbot"
1835− , "hircules"
1836− , "hirt"
1837− , "hissmetrics"
1838− , "historian"
1839− , "hist-pl"
1840− , "hist-pl-fusion"
1841− , "hist-pl-lmf"
1842− , "hjs"
1843− , "HJVM"
1844− , "hlatex"
1845− , "hlbfgsb"
1846− , "hlcm"
1847− , "HLearn-algebra"
1848− , "HLearn-datastructures"
1849− , "hledger-chart"
1850− , "hledger-vty"
1851− , "hlibev"
1852− , "hlibfam"
1853− , "HListPP"
1854− , "hlogger"
1855− , "HLogger"
1856− , "hly"
1857− , "HMap"
1858− , "hmark"
1859− , "hmarkup"
1860− , "hmatrix-banded"
1861− , "hmatrix-gsl-stats"
1862− , "hmatrix-quadprogpp"
1863− , "hmatrix-static"
1864− , "hmatrix-syntax"
1865− , "hmatrix-tests"
1866− , "hmeap"
1867− , "hmeap-utils"
1868− , "hmenu"
1869− , "hmk"
1870− , "HMM"
1871− , "hmm-hmatrix"
1872− , "hMollom"
1873− , "hmp3"
1874− , "Hmpf"
1875− , "hmpfr"
1876− , "hmumps"
1877− , "HNM"
1878− , "hnn"
1879− , "hoauth"
1880− , "hob"
1881− , "hobbes"
1882− , "hobbits"
1883− , "HODE"
1884− , "hofix-mtl"
1885− , "hog"
1886− , "hogg"
1887− , "hogre"
1888− , "hogre-examples"
1889− , "hois"
1890− , "hole"
1891− , "holey-format"
1892− , "Holumbus-Distribution"
1893− , "Holumbus-MapReduce"
1894− , "Holumbus-Searchengine"
1895− , "Holumbus-Storage"
1896− , "homeomorphic"
1897− , "hommage"
1898− , "hommage-ds"
1899− , "HongoDB"
1900− , "honi"
1901− , "hoodie"
1902− , "hoodle"
1903− , "hoodle-builder"
1904− , "hoodle-core"
1905− , "hoodle-extra"
1906− , "hoodle-parser"
1907− , "hoodle-publish"
1908− , "hoodle-render"
1909− , "hoodle-types"
1910− , "hood-off"
1911− , "hoovie"
1912− , "hopencc"
1913− , "hopencl"
1914− , "hOpenPGP"
1915− , "hopfield"
1916− , "hoq"
1917− , "hosts-server"
1918− , "hotswap"
1919− , "hp2any-core"
1920− , "hp2any-graph"
1921− , "hp2any-manager"
1922− , "hpage"
1923− , "hpapi"
1924− , "hpaste"
1925− , "hpasteit"
1926− , "HPath"
1927− , "hpc-coveralls"
1928− , "hpc-tracer"
1929− , "hPDB-examples"
1930− , "HPDF"
1931− , "hplayground"
1932− , "hplaylist"
1933− , "HPlot"
1934− , "hpodder"
1935− , "HPong"
1936− , "hprotoc-fork"
1937− , "hps-cairo"
1938− , "hpygments"
1939− , "hpylos"
1940− , "hR"
1941− , "hranker"
1942− , "HRay"
1943− , "Hricket"
1944− , "HROOT"
1945− , "HROOT-core"
1946− , "HROOT-graf"
1947− , "HROOT-hist"
1948− , "HROOT-io"
1949− , "HROOT-math"
1950− , "hs2bf"
1951− , "hs2dot"
1952− , "Hs2lib"
1953− , "hsbackup"
1954− , "hsc2hs"
1955− , "hsc3-cairo"
1956− , "hsc3-data"
1957− , "hsc3-forth"
1958− , "hsc3-graphs"
1959− , "hsc3-lang"
1960− , "hsc3-lisp"
1961− , "hsc3-plot"
1962− , "hsc3-rec"
1963− , "hsc3-server"
1964− , "hsc3-unsafe"
1965− , "hscamwire"
1966− , "hs-carbon-examples"
1967− , "hscassandra"
1968− , "hs-cdb"
1969− , "hsclock"
1970− , "hscurses-fish-ex"
1971− , "hsdip"
1972− , "hsdns-cache"
1973− , "hs-dotnet"
1974− , "Hsed"
1975− , "hsfacter"
1976− , "HSFFIG"
1977− , "hs-ffmpeg"
1978− , "hs-fltk"
1979− , "hs-gchart"
1980− , "hs-GeoIP"
1981− , "HSGEP"
1982− , "hsgnutls"
1983− , "hsgnutls-yj"
1984− , "hsgsom"
1985− , "HsHaruPDF"
1986− , "HSHHelpers"
1987− , "HsHyperEstraier"
1988− , "hsignal"
1989− , "hSimpleDB"
1990− , "hs-java"
1991− , "hs-json-rpc"
1992− , "HsJudy"
1993− , "hskeleton"
1994− , "hslackbuilder"
1995− , "hslibsvm"
1996− , "hslogger4j"
1997− , "hs-logo"
1998− , "hslogstash"
1999− , "hsmagick"
2000− , "HSmarty"
2001− , "hs-mesos"
2002− , "Hsmtlib"
2003− , "hsmtpclient"
2004− , "hsndfile-storablevector"
2005− , "hsnock"
2006− , "hs-nombre-generator"
2007− , "hsns"
2008− , "hsntp"
2009− , "hsoptions"
2010− , "HSoundFile"
2011− , "hsparql"
2012− , "HsParrot"
2013− , "hsp-cgi"
2014− , "hspear"
2015− , "hspec-experimental"
2016− , "hspec-shouldbe"
2017− , "HsPerl5"
2018− , "hs-pgms"
2019− , "hs-pkpass"
2020− , "hspread"
2021− , "hspresent"
2022− , "hsprocess"
2023− , "hsql-mysql"
2024− , "hsqml-datamodel"
2025− , "hsqml-demo-morris"
2026− , "hsqml-demo-samples"
2027− , "hsqml-morris"
2028− , "hsSqlite3"
2029− , "HsSVN"
2030− , "hstatistics"
2031− , "hstats"
2032− , "hstest"
2033− , "hstidy"
2034− , "hstorchat"
2035− , "hstradeking"
2036− , "HStringTemplateHelpers"
2037− , "hs-twitter"
2038− , "hs-twitterarchiver"
2039− , "hstyle"
2040− , "hstzaar"
2041− , "hsubconvert"
2042− , "hs-vcard"
2043− , "HSvm"
2044− , "hswip"
2045− , "hsx"
2046− , "hsXenCtrl"
2047− , "hsx-jmacro"
2048− , "hsx-xhtml"
2049− , "hsyscall"
2050− , "hszephyr"
2051− , "HTab"
2052− , "hTalos"
2053− , "hTensor"
2054− , "HTicTacToe"
2055− , "html-entities"
2056− , "htoml"
2057− , "htsn-import"
2058− , "http-client-request-modifiers"
2059− , "http-conduit-browser"
2060− , "http-conduit-downloader"
2061− , "http-enumerator"
2062− , "http-monad"
2063− , "http-proxy"
2064− , "https-everywhere-rules"
2065− , "http-shed"
2066− , "HTTP-Simple"
2067− , "httpspec"
2068− , "http-test"
2069− , "htune"
2070− , "hubris"
2071− , "hugs2yc"
2072− , "hulk"
2073− , "hums"
2074− , "HUnit-Diff"
2075− , "hunit-gui"
2076− , "HUnit-Plus"
2077− , "hunit-rematch"
2078− , "hunt-searchengine"
2079− , "hurdle"
2080− , "husk-scheme"
2081− , "husk-scheme-libs"
2082− , "husky"
2083− , "hutton"
2084− , "huzzy"
2085− , "hVOIDP"
2086− , "hws"
2087− , "HXMPP"
2088− , "hxmppc"
2089− , "hxournal"
2090− , "HXQ"
2091− , "hxt-binary"
2092− , "hxt-filter"
2093− , "hxthelper"
2094− , "hxweb"
2095− , "hybrid"
2096− , "hydra-hs"
2097− , "hydrogen-cli-args"
2098− , "hydrogen-data"
2099− , "hydrogen-parsing"
2100− , "hydrogen-prelude"
2101− , "hydrogen-prelude-parsec"
2102− , "hydrogen-util"
2103− , "hyena"
2104− , "hylolib"
2105− , "hylotab"
2106− , "hyloutils"
2107− , "hyperdrive"
2108− , "hyperpublic"
2109− , "hypher"
2110− , "i18n"
2111− , "iban"
2112− , "ideas"
2113− , "ideas-math"
2114− , "ide-backend-server"
2115− , "idiii"
2116− , "idna2008"
2117− , "IDynamic"
2118− , "ieee-utils"
2119− , "iException"
2120− , "IFS"
2121− , "ige-mac-integration"
2122− , "igraph"
2123− , "ihaskell"
2124− , "ihaskell-aeson"
2125− , "ihaskell-basic"
2126− , "ihaskell-blaze"
2127− , "ihaskell-charts"
2128− , "ihaskell-display"
2129− , "ihaskell-hatex"
2130− , "ihaskell-juicypixels"
2131− , "ihaskell-magic"
2132− , "ihaskell-parsec"
2133− , "ihaskell-plot"
2134− , "ihaskell-rlangqq"
2135− , "ihttp"
2136− , "illuminate"
2137− , "imagepaste"
2138− , "imbib"
2139− , "imgurder"
2140− , "imm"
2141− , "imparse"
2142− , "ImperativeHaskell"
2143− , "implicit"
2144− , "improve"
2145− , "INblobs"
2146− , "inch"
2147− , "include-file"
2148− , "incremental-computing"
2149− , "incremental-sat-solver"
2150− , "increments"
2151− , "index-core"
2152− , "indices"
2153− , "infer-upstream"
2154− , "infinity"
2155− , "infix"
2156− , "InfixApplicative"
2157− , "inflist"
2158− , "informative"
2159− , "inilist"
2160− , "instant-zipper"
2161− , "integer-pure"
2162− , "intel-aes"
2163− , "interleavableGen"
2164− , "interleavableIO"
2165− , "internetmarke"
2166− , "interpolatedstring-qq"
2167− , "interpolatedstring-qq-mwotton"
2168− , "intricacy"
2169− , "intset"
2170− , "IOR"
2171− , "io-reactive"
2172− , "IORefCAS"
2173− , "iotransaction"
2174− , "ipatch"
2175− , "ipc"
2176− , "ipopt-hs"
2177− , "iptables-helpers"
2178− , "iptadmin"
2179− , "Irc"
2180− , "ircbouncer"
2181− , "ireal"
2182− , "IrrHaskell"
2183− , "isevaluated"
2184− , "ismtp"
2185− , "iteratee"
2186− , "iteratee-compress"
2187− , "iteratee-parsec"
2188− , "iteratee-stm"
2189− , "iterIO"
2190− , "iterio-server"
2191− , "iter-stats"
2192− , "ivor"
2193− , "ivory"
2194− , "ivory-opts"
2195− , "ivory-quickcheck"
2196− , "ivory-stdlib"
2197− , "ivy-web"
2198− , "ixdopp"
2199− , "ixset-typed"
2200− , "iyql"
2201− , "j2hs"
2202− , "jack-bindings"
2203− , "jackminimix"
2204− , "JackMiniMix"
2205− , "jalla"
2206− , "jammittools"
2207− , "jarfind"
2208− , "java-bridge"
2209− , "java-bridge-extras"
2210− , "java-reflect"
2211− , "javasf"
2212− , "Javasf"
2213− , "javav"
2214− , "Javav"
2215− , "jespresso"
2216− , "jobqueue"
2217− , "join"
2218− , "joinlist"
2219− , "jonathanscard"
2220− , "jort"
2221− , "jsc"
2222− , "JsContracts"
2223− , "js-good-parts"
2224− , "jsmw"
2225− , "json2"
2226− , "json2-hdbc"
2227− , "json-b"
2228− , "JSONb"
2229− , "JSON-Combinator"
2230− , "JSON-Combinator-Examples"
2231− , "json-enumerator"
2232− , "JsonGrammar"
2233− , "json-qq"
2234− , "jsonresume"
2235− , "json-rpc"
2236− , "json-tools"
2237− , "jspath"
2238− , "judy"
2239− , "JuicyPixels-repa"
2240− , "JunkDB-driver-gdbm"
2241− , "JYU-Utils"
2242− , "kangaroo"
2243− , "kansas-comet"
2244− , "kansas-lava"
2245− , "kansas-lava-cores"
2246− , "kansas-lava-papilio"
2247− , "kansas-lava-shake"
2248− , "katt"
2249− , "keera-hails-mvc-model-lightmodel"
2250− , "keera-hails-reactive-fs"
2251− , "keera-posture"
2252− , "keiretsu"
2253− , "Ketchup"
2254− , "kevin"
2255− , "keyring"
2256− , "keystore"
2257− , "kibro"
2258− , "kicad-data"
2259− , "kickass-torrents-dump-parser"
2260− , "KiCS"
2261− , "KiCS-debugger"
2262− , "KiCS-prophecy"
2263− , "kif-parser"
2264− , "kit"
2265− , "kmeans-par"
2266− , "koellner-phonetic"
2267− , "Konf"
2268− , "korfu"
2269− , "kqueue"
2270− , "kure-your-boilerplate"
2271− , "KyotoCabinet"
2272− , "labeled-graph"
2273− , "labyrinth"
2274− , "labyrinth-server"
2275− , "laika"
2276− , "lambda2js"
2277− , "lambdaBase"
2278− , "lambdabot-utils"
2279− , "lambda-bridge"
2280− , "LambdaCalculator"
2281− , "lambdacat"
2282− , "lambdacube"
2283− , "lambdacube-bullet"
2284− , "lambdacube-engine"
2285− , "lambdacube-examples"
2286− , "lambdacube-samples"
2287− , "lambda-devs"
2288− , "lambdaFeed"
2289− , "LambdaINet"
2290− , "lambdaLit"
2291− , "LambdaPrettyQuote"
2292− , "LambdaShell"
2293− , "lambda-toolbox"
2294− , "lambdatwit"
2295− , "lambdiff"
2296− , "lame-tester"
2297− , "language-bash"
2298− , "language-boogie"
2299− , "language-c-comments"
2300− , "language-c-inline"
2301− , "language-eiffel"
2302− , "language-go"
2303− , "language-java-classfile"
2304− , "language-mixal"
2305− , "language-objc"
2306− , "language-puppet"
2307− , "language-python-colour"
2308− , "language-sh"
2309− , "language-spelling"
2310− , "language-sqlite"
2311− , "language-thrift"
2312− , "Lastik"
2313− , "lat"
2314− , "latest-npm-version"
2315− , "Lattices"
2316− , "layers"
2317− , "layout"
2318− , "layout-bootstrap"
2319− , "lazyarray"
2320− , "lazysplines"
2321− , "l-bfgs-b"
2322− , "lcs"
2323− , "ldap-client"
2324− , "ldif"
2325− , "leaf"
2326− , "leaky"
2327− , "learn-physics"
2328− , "learn-physics-examples"
2329− , "leksah"
2330− , "Level0"
2331− , "leveldb-haskell-fork"
2332− , "levmar-chart"
2333− , "lgtk"
2334− , "lha"
2335− , "lhae"
2336− , "lhe"
2337− , "LibClang"
2338− , "libcspm"
2339− , "libexpect"
2340− , "libGenI"
2341− , "libhbb"
2342− , "libjenkins"
2343− , "libltdl"
2344− , "liboleg"
2345− , "libpafe"
2346− , "libpq"
2347− , "libssh2-conduit"
2348− , "libsystemd-daemon"
2349− , "libvirt-hs"
2350− , "libxml"
2351− , "libxslt"
2352− , "lifter"
2353− , "lighttpd-conf"
2354− , "lighttpd-conf-qq"
2355− , "lilypond"
2356− , "Limit"
2357− , "limp-cbc"
2358− , "lin-alg"
2359− , "linear-algebra-cblas"
2360− , "linear-maps"
2361− , "linearscan"
2362− , "linearscan-hoopl"
2363− , "LinearSplit"
2364− , "LinkChecker"
2365− , "linkchk"
2366− , "linkcore"
2367− , "linux-blkid"
2368− , "linux-kmod"
2369− , "linux-perf"
2370− , "linux-ptrace"
2371− , "lio-eci11"
2372− , "lio-simple"
2373− , "liquid-fixpoint"
2374− , "liquidhaskell"
2375− , "listlike-instances"
2376− , "list-t-html-parser"
2377− , "ListTree"
2378− , "literals"
2379− , "live-sequencer"
2380− , "ll-picosat"
2381− , "llsd"
2382− , "llvm-ffi"
2383− , "llvm-general-quote"
2384− , "llvm-ht"
2385− , "local-search"
2386− , "loch"
2387− , "log2json"
2388− , "log-effect"
2389− , "logic-classes"
2390− , "LogicGrowsOnTrees"
2391− , "LogicGrowsOnTrees-MPI"
2392− , "LogicGrowsOnTrees-network"
2393− , "LogicGrowsOnTrees-processes"
2394− , "lojban"
2395− , "lojbanParser"
2396− , "lojbanXiragan"
2397− , "lojysamban"
2398− , "loli"
2399− , "loop-effin"
2400− , "loopy"
2401− , "lord"
2402− , "loris"
2403− , "lostcities"
2404− , "lscabal"
2405− , "L-seed"
2406− , "LslPlus"
2407− , "ls-usb"
2408− , "lsystem"
2409− , "luachunk"
2410− , "luautils"
2411− , "lucienne"
2412− , "Lucu"
2413− , "lui"
2414− , "luka"
2415− , "luthor"
2416− , "lvish"
2417− , "lvmlib"
2418− , "lye"
2419− , "maam"
2420− , "mage"
2421− , "MagicHaskeller"
2422− , "magma"
2423− , "mahoro"
2424− , "majordomo"
2425− , "majority"
2426− , "manatee"
2427− , "manatee-anything"
2428− , "manatee-browser"
2429− , "manatee-core"
2430− , "manatee-curl"
2431− , "manatee-editor"
2432− , "manatee-filemanager"
2433− , "manatee-imageviewer"
2434− , "manatee-mplayer"
2435− , "manatee-pdfviewer"
2436− , "manatee-processmanager"
2437− , "manatee-reader"
2438− , "manatee-template"
2439− , "manatee-terminal"
2440− , "manatee-welcome"
2441− , "mandulia"
2442− , "mangopay"
2443− , "manifolds"
2444− , "marionetta"
2445− , "markdown2svg"
2446− , "markdown-kate"
2447− , "markdown-pap"
2448− , "markov-processes"
2449− , "markup-preview"
2450− , "marmalade-upload"
2451− , "marquise"
2452− , "marxup"
2453− , "masakazu-bot"
2454− , "matchers"
2455− , "mathblog"
2456− , "mathgenealogy"
2457− , "mathlink"
2458− , "matlab"
2459− , "matsuri"
2460− , "maude"
2461− , "maxent"
2462− , "maxsharing"
2463− , "maybench"
2464− , "MaybeT-monads-tf"
2465− , "MaybeT-transformers"
2466− , "MazesOfMonad"
2467− , "mbox-tools"
2468− , "MC-Fold-DP"
2469− , "mcmc-samplers"
2470− , "mdcat"
2471− , "Measure"
2472− , "mecab"
2473− , "mediawiki"
2474− , "mediawiki2latex"
2475− , "mega-sdist"
2476− , "melody"
2477− , "memo-sqlite"
2478− , "MetaObject"
2479− , "meta-par-accelerate"
2480− , "metaplug"
2481− , "metric"
2482− , "Metrics"
2483− , "metronome"
2484− , "MFlow"
2485− , "Mhailist"
2486− , "MHask"
2487− , "microformats2-parser"
2488− , "mida"
2489− , "midisurface"
2490− , "mighttpd"
2491− , "milena"
2492− , "mime-directory"
2493− , "mime-string"
2494− , "minesweeper"
2495− , "MiniAgda"
2496− , "miniball"
2497− , "miniforth"
2498− , "minimung"
2499− , "minioperational"
2500− , "miniplex"
2501− , "minirotate"
2502− , "ministg"
2503− , "mirror-tweet"
2504− , "MissingPy"
2505− , "missing-py2"
2506− , "mix-arrows"
2507− , "mkbndl"
2508− , "mlist"
2509− , "ml-w"
2510− , "mmtl"
2511− , "mmtl-base"
2512− , "moan"
2513− , "modelicaparser"
2514− , "modsplit"
2515− , "modular-prelude"
2516− , "modular-prelude-classy"
2517− , "module-management"
2518− , "mohws"
2519− , "monad-abort-fd"
2520− , "monadacme"
2521− , "monad-atom"
2522− , "monad-atom-simple"
2523− , "monad-bool"
2524− , "MonadCatchIO-mtl-foreign"
2525− , "MonadCatchIO-transformers-foreign"
2526− , "monad-exception"
2527− , "monadiccp"
2528− , "monadiccp-gecode"
2529− , "monad-interleave"
2530− , "MonadLab"
2531− , "monad-levels"
2532− , "monad-lrs"
2533− , "monad-memo"
2534− , "monad-mersenne-random"
2535− , "monad-ran"
2536− , "MonadRandomLazy"
2537− , "monad-stlike-io"
2538− , "monad-stlike-stm"
2539− , "monad-tx"
2540− , "monad-unify"
2541− , "monarch"
2542− , "Monaris"
2543− , "Monatron"
2544− , "Monatron-IO"
2545− , "mongodb-queue"
2546− , "mongrel2-handler"
2547− , "Monocle"
2548− , "mono-foldable"
2549− , "monoid-owns"
2550− , "monoidplus"
2551− , "monoids"
2552− , "monte-carlo"
2553− , "moo"
2554− , "morfette"
2555− , "morfeusz"
2556− , "mosaico-lib"
2557− , "mount"
2558− , "mp3decoder"
2559− , "mpdmate"
2560− , "mpppc"
2561− , "mpretty"
2562− , "mprover"
2563− , "mps"
2564− , "mpvguihs"
2565− , "mqtt-hs"
2566− , "msgpack-idl"
2567− , "mtgoxapi"
2568− , "mtl-tf"
2569− , "mtlx"
2570− , "mtp"
2571− , "mudbath"
2572− , "multifocal"
2573− , "multipass"
2574− , "multiplate-simplified"
2575− , "multirec-alt-deriver"
2576− , "multirec-binary"
2577− , "multisetrewrite"
2578− , "murder"
2579− , "murmurhash3"
2580− , "musicbrainz-email"
2581− , "music-graphics"
2582− , "music-parts"
2583− , "music-preludes"
2584− , "music-score"
2585− , "music-sibelius"
2586− , "music-suite"
2587− , "music-util"
2588− , "musicxml"
2589− , "mustache2hs"
2590− , "mutable-iter"
2591− , "mvclient"
2592− , "mvc-updates"
2593− , "myo"
2594− , "mysnapsession"
2595− , "mysnapsession-example"
2596− , "mysql-simple-quasi"
2597− , "mysql-simple-typed"
2598− , "myTestlll"
2599− , "mzv"
2600− , "nagios-plugin-ekg"
2601− , "named-lock"
2602− , "nanoAgda"
2603− , "nano-cryptr"
2604− , "nanocurses"
2605− , "nano-hmac"
2606− , "nano-md5"
2607− , "nanomsg-haskell"
2608− , "narc"
2609− , "nats-queue"
2610− , "natural-number"
2611− , "neat"
2612− , "needle"
2613− , "nerf"
2614− , "nero"
2615− , "nero-wai"
2616− , "nero-warp"
2617− , "netcore"
2618− , "netlines"
2619− , "NetSNMP"
2620− , "netspec"
2621− , "nettle"
2622− , "nettle-frp"
2623− , "nettle-netkit"
2624− , "nettle-openflow"
2625− , "network-address"
2626− , "network-anonymous-i2p"
2627− , "network-builder"
2628− , "network-bytestring"
2629− , "network-connection"
2630− , "network-house"
2631− , "network-minihttp"
2632− , "network-rpca"
2633− , "network-server"
2634− , "network-simple-tls"
2635− , "network-topic-models"
2636− , "network-transport-amqp"
2637− , "network-websocket"
2638− , "newports"
2639− , "newsynth"
2640− , "newt"
2641− , "newtype-th"
2642− , "NGrams"
2643− , "nibblestring"
2644− , "nikepub"
2645− , "Ninjas"
2646− , "nitro"
2647− , "nixos-types"
2648− , "nkjp"
2649− , "nm"
2650− , "nme"
2651− , "nntp"
2652− , "noise"
2653− , "Nomyx"
2654− , "Nomyx-Core"
2655− , "Nomyx-Language"
2656− , "Nomyx-Rules"
2657− , "Nomyx-Web"
2658− , "nondeterminism"
2659− , "NonEmptyList"
2660− , "noodle"
2661− , "NoSlow"
2662− , "not-gloss-examples"
2663− , "notmuch-haskell"
2664− , "notmuch-web"
2665− , "np-linear"
2666− , "nptools"
2667− , "nthable"
2668− , "null-canvas"
2669− , "NumberSieves"
2670− , "numerals"
2671− , "numerals-base"
2672− , "numeric-qq"
2673− , "nums"
2674− , "Nussinov78"
2675− , "nvim-hs"
2676− , "NXT"
2677− , "NXTDSL"
2678− , "nymphaea"
2679− , "oberon0"
2680− , "obj"
2681− , "Object"
2682− , "ObjectIO"
2683− , "octopus"
2684− , "oculus"
2685− , "ofx"
2686− , "OGL"
2687− , "ohloh-hs"
2688− , "oi"
2689− , "ois-input-manager"
2690− , "omaketex"
2691− , "omega"
2692− , "Omega"
2693− , "omnicodec"
2694− , "on-a-horse"
2695− , "one-liner"
2696− , "oneormore"
2697− , "onu-course"
2698− , "OpenAFP"
2699− , "OpenAFP-Utils"
2700− , "OpenCL"
2701− , "OpenCLRaw"
2702− , "opencv-raw"
2703− , "openexchangerates"
2704− , "openflow"
2705− , "OpenGLCheck"
2706− , "opengles"
2707− , "openid"
2708− , "open-pandoc"
2709− , "openpgp-Crypto"
2710− , "openpgp-crypto-api"
2711− , "OpenSCAD"
2712− , "openssh-github-keys"
2713− , "opentheory-char"
2714− , "open-union"
2715− , "OpenVG"
2716− , "OpenVGRaw"
2717− , "open-witness"
2718− , "Operads"
2719− , "optimusprime"
2720− , "OrchestrateDB"
2721− , "orchid"
2722− , "orchid-demo"
2723− , "order-maintenance"
2724− , "orgmode-parse"
2725− , "origami"
2726− , "OSM"
2727− , "osm-download"
2728− , "ot"
2729− , "package-vt"
2730− , "packedstring"
2731− , "PageIO"
2732− , "panda"
2733− , "PandocAgda"
2734− , "pandoc-unlit"
2735− , "papillon"
2736− , "pappy"
2737− , "paragon"
2738− , "Paraiso"
2739− , "parallel-tasks"
2740− , "parameterized-data"
2741− , "parco"
2742− , "parco-attoparsec"
2743− , "parconc-examples"
2744− , "parco-parsec"
2745− , "Parry"
2746− , "parsec2"
2747− , "parse-help"
2748− , "parsely"
2749− , "parser-helper"
2750− , "parsestar"
2751− , "partial-lens"
2752− , "partly"
2753− , "passage"
2754− , "pastis"
2755− , "pasty"
2756− , "Pathfinder"
2757− , "pathfindingcore"
2758− , "patterns"
2759− , "paypal-api"
2760− , "pb"
2761− , "PCLT"
2762− , "PCLT-DB"
2763− , "pdynload"
2764− , "peakachu"
2765− , "pec"
2766− , "peg"
2767− , "penny"
2768− , "penny-bin"
2769− , "penny-lib"
2770− , "peparser"
2771− , "perdure"
2772− , "PerfectHash"
2773− , "perm"
2774− , "permute"
2775− , "PermuteEffects"
2776− , "persistent-hssqlppp"
2777− , "persistent-map"
2778− , "persistent-protobuf"
2779− , "pesca"
2780− , "peyotls"
2781− , "pez"
2782− , "pgdl"
2783− , "pg-harness"
2784− , "pg-harness-server"
2785− , "pgsql-simple"
2786− , "pgstream"
2787− , "phasechange"
2788− , "phash"
2789− , "phone-push"
2790− , "phooey"
2791− , "photoname"
2792− , "phraskell"
2793− , "Phsu"
2794− , "phybin"
2795− , "pianola"
2796− , "pi-calculus"
2797− , "picologic"
2798− , "piet"
2799− , "piki"
2800− , "Pipe"
2801− , "pipes-cereal-plus"
2802− , "pipes-conduit"
2803− , "pipes-network-tls"
2804− , "pipes-p2p-examples"
2805− , "pisigma"
2806− , "pit"
2807− , "pkggraph"
2808− , "planar-graph"
2809− , "plat"
2810− , "plivo"
2811− , "PlslTools"
2812− , "plugins"
2813− , "plugins-auto"
2814− , "plugins-multistage"
2815− , "plumbers"
2816− , "png-file"
2817− , "pngload"
2818− , "pngload-fixed"
2819− , "pocket-dns"
2820− , "pointless-haskell"
2821− , "pointless-lenses"
2822− , "pointless-rewrite"
2823− , "polh-lexicon"
2824− , "polyseq"
2825− , "polytypeable"
2826− , "polytypeable-utils"
2827− , "pontarius-mediaserver"
2828− , "pontarius-xmpp"
2829− , "pontarius-xpmn"
2830− , "pool"
2831− , "pool-conduit"
2832− , "popenhs"
2833− , "poppler"
2834− , "porte"
2835− , "porter"
2836− , "ports"
2837− , "posix-acl"
2838− , "posix-waitpid"
2839− , "PostgreSQL"
2840− , "postgresql-orm"
2841− , "postgresql-schema"
2842− , "postgresql-simple-typed"
2843− , "postgresql-typed"
2844− , "postgrest"
2845− , "postie"
2846− , "postmaster"
2847− , "powermate"
2848− , "powerpc"
2849− , "pqc"
2850− , "pqueue-mtl"
2851− , "practice-room"
2852− , "precis"
2853− , "prefork"
2854− , "pregame"
2855− , "prelude-generalize"
2856− , "prelude-plus"
2857− , "preprocess-haskell"
2858− , "press"
2859− , "primula-board"
2860− , "primula-bot"
2861− , "printf-mauke"
2862− , "Printf-TH"
2863− , "PriorityChansConverger"
2864− , "priority-queue"
2865− , "ProbabilityMonads"
2866− , "proc"
2867− , "processing"
2868− , "process-iterio"
2869− , "process-leksah"
2870− , "process-listlike"
2871− , "process-progress"
2872− , "process-qq"
2873− , "procrastinating-structure"
2874− , "procrastinating-variable"
2875− , "procstat"
2876− , "prof2dot"
2877− , "profunctor-extras"
2878− , "progress"
2879− , "progressbar"
2880− , "progression"
2881− , "progressive"
2882− , "proj4-hs-bindings"
2883− , "prolog"
2884− , "prolog-graph"
2885− , "prolog-graph-lib"
2886− , "propane"
2887− , "Proper"
2888− , "proplang"
2889− , "protobuf-native"
2890− , "protocol-buffers-descriptor-fork"
2891− , "protocol-buffers-fork"
2892− , "prove-everywhere-server"
2893− , "proxy-kindness"
2894− , "pub"
2895− , "publicsuffixlistcreate"
2896− , "pubnub"
2897− , "pubsub"
2898− , "puffytools"
2899− , "Pugs"
2900− , "pugs-compat"
2901− , "pugs-DrIFT"
2902− , "pugs-hsregex"
2903− , "pugs-HsSyck"
2904− , "punkt"
2905− , "Pup-Events"
2906− , "Pup-Events-Demo"
2907− , "puppetresources"
2908− , "purescript"
2909− , "pushme"
2910− , "push-notify"
2911− , "push-notify-ccs"
2912− , "push-notify-general"
2913− , "putlenses"
2914− , "puzzle-draw"
2915− , "puzzle-draw-cmdline"
2916− , "pvd"
2917− , "python-pickle"
2918− , "qd"
2919− , "qd-vec"
2920− , "qhull-simple"
2921− , "QIO"
2922− , "quantum-arrow"
2923− , "qudb"
2924− , "quenya-verb"
2925− , "querystring-pickle"
2926− , "queuelike"
2927− , "QuickAnnotate"
2928− , "QuickCheck-GenT"
2929− , "quickcheck-poly"
2930− , "quickcheck-regex"
2931− , "quickcheck-relaxng"
2932− , "quickcheck-rematch"
2933− , "quickpull"
2934− , "quickset"
2935− , "Quickson"
2936− , "quicktest"
2937− , "quoridor-hs"
2938− , "rabocsv2qif"
2939− , "rad"
2940− , "radium"
2941− , "radium-formula-parser"
2942− , "rados-haskell"
2943− , "rail-compiler-editor"
2944− , "rainbow-tests"
2945− , "Raincat"
2946− , "rakhana"
2947− , "ralist"
2948− , "rallod"
2949− , "random-access-list"
2950− , "RandomDotOrg"
2951− , "random-eff"
2952− , "random-effin"
2953− , "random-hypergeometric"
2954− , "random-stream"
2955− , "rand-vars"
2956− , "rangemin"
2957− , "range-space"
2958− , "Ranka"
2959− , "raven-haskell"
2960− , "raven-haskell-scotty"
2961− , "rbr"
2962− , "rdf4h"
2963− , "rdioh"
2964− , "reaction-logic"
2965− , "reactive"
2966− , "reactive-bacon"
2967− , "reactive-balsa"
2968− , "reactive-banana-sdl"
2969− , "reactive-banana-threepenny"
2970− , "reactive-fieldtrip"
2971− , "reactive-glut"
2972− , "reactive-thread"
2973− , "reactor"
2974− , "really-simple-xml-parser"
2975− , "reasonable-lens"
2976− , "record-aeson"
2977− , "record-gl"
2978− , "record-preprocessor"
2979− , "records"
2980− , "records-th"
2981− , "redHandlers"
2982− , "ref"
2983− , "Ref"
2984− , "Referees"
2985− , "refh"
2986− , "reflection-extras"
2987− , "regex-deriv"
2988− , "regex-dfa"
2989− , "regex-genex"
2990− , "regex-parsec"
2991− , "regex-pderiv"
2992− , "regexp-tries"
2993− , "regexqq"
2994− , "regex-tdfa-utf8"
2995− , "regex-tre"
2996− , "regex-xmlschema"
2997− , "regional-pointers"
2998− , "regions"
2999− , "regions-monadsfd"
3000− , "regions-monadstf"
3001− , "regions-mtl"
3002− , "regular-extras"
3003− , "regular-web"
3004− , "reheat"
3005− , "rei"
3006− , "reified-records"
3007− , "reify"
3008− , "remote"
3009− , "remote-debugger"
3010− , "remotion"
3011− , "reorderable"
3012− , "repa-array"
3013− , "repa-bytestring"
3014− , "repa-flow"
3015− , "repa-plugin"
3016− , "repa-series"
3017− , "repa-v4l2"
3018− , "repl"
3019− , "RepLib"
3020− , "repo-based-blog"
3021− , "repr"
3022− , "representable-functors"
3023− , "representable-profunctors"
3024− , "representable-tries"
3025− , "resource-embed"
3026− , "resource-simple"
3027− , "respond"
3028− , "restful-snap"
3029− , "RESTng"
3030− , "restricted-workers"
3031− , "restyle"
3032− , "resumable-exceptions"
3033− , "rethinkdb-client-driver"
3034− , "rethinkdb-model"
3035− , "ReviewBoard"
3036− , "rewrite"
3037− , "rewriting"
3038− , "rezoom"
3039− , "rfc3339"
3040− , "riak"
3041− , "riak-protobuf"
3042− , "riot"
3043− , "ripple"
3044− , "ripple-federation"
3045− , "risc386"
3046− , "rivers"
3047− , "RJson"
3048− , "rmonad"
3049− , "RMP"
3050− , "RNAdesign"
3051− , "RNAdraw"
3052− , "RNAFold"
3053− , "RNAFoldProgs"
3054− , "RNAwolf"
3055− , "roguestar"
3056− , "roguestar-engine"
3057− , "roguestar-gl"
3058− , "roguestar-glut"
3059− , "RollingDirectory"
3060− , "rope"
3061− , "rosa"
3062− , "roshask"
3063− , "rosso"
3064− , "rotating-log"
3065− , "rounding"
3066− , "roundtrip"
3067− , "roundtrip-aeson"
3068− , "roundtrip-string"
3069− , "roundtrip-xml"
3070− , "route-generator"
3071− , "route-planning"
3072− , "rowrecord"
3073− , "rpc"
3074− , "rpc-framework"
3075− , "rpm"
3076− , "rsagl"
3077− , "rsagl-frp"
3078− , "rsagl-math"
3079− , "rss2irc"
3080− , "rubberband"
3081− , "ruff"
3082− , "ruler-core"
3083− , "rungekutta"
3084− , "RxHaskell"
3085− , "safe-freeze"
3086− , "safe-globals"
3087− , "safeint"
3088− , "safe-lazy-io"
3089− , "safe-plugins"
3090− , "safer-file-handles"
3091− , "safer-file-handles-bytestring"
3092− , "safer-file-handles-text"
3093− , "sai-shape-syb"
3094− , "Salsa"
3095− , "salvia"
3096− , "salvia-demo"
3097− , "salvia-extras"
3098− , "salvia-protocol"
3099− , "salvia-sessions"
3100− , "salvia-websocket"
3101− , "samtools-iteratee"
3102− , "sasl"
3103− , "sat"
3104− , "satchmo-backends"
3105− , "satchmo-examples"
3106− , "satchmo-funsat"
3107− , "satchmo-minisat"
3108− , "sat-micro-hs"
3109− , "SBench"
3110− , "scaleimage"
3111− , "scan-vector-machine"
3112− , "scat"
3113− , "scenegraph"
3114− , "schedevr"
3115− , "scholdoc"
3116− , "scholdoc-citeproc"
3117− , "scion"
3118− , "scion-browser"
3119− , "scope"
3120− , "scope-cairo"
3121− , "scottish"
3122− , "scotty-blaze"
3123− , "scotty-fay"
3124− , "scotty-hastache"
3125− , "scotty-session"
3126− , "scrabble-bot"
3127− , "ScratchFs"
3128− , "scrobble"
3129− , "scroll"
3130− , "scrz"
3131− , "Scurry"
3132− , "SDL-gfx"
3133− , "SDL-image"
3134− , "SDL-mixer"
3135− , "SDL-mpeg"
3136− , "SDL-ttf"
3137− , "seacat"
3138− , "search"
3139− , "secdh"
3140− , "second-transfer"
3141− , "secret-santa"
3142− , "secret-sharing"
3143− , "secrm"
3144− , "sednaDBXML"
3145− , "selectors"
3146− , "selenium"
3147− , "selenium-server"
3148− , "selinux"
3149− , "Semantique"
3150− , "semigroups-actions"
3151− , "semi-iso"
3152− , "semiring"
3153− , "sensenet"
3154− , "sentry"
3155− , "senza"
3156− , "seqaid"
3157− , "SeqAlign"
3158− , "seqloc-datafiles"
3159− , "sequent-core"
3160− , "sequor"
3161− , "servant-pool"
3162− , "servant-postgresql"
3163− , "servant-scotty"
3164− , "servius"
3165− , "ses-html-snaplet"
3166− , "SessionLogger"
3167− , "sessions"
3168− , "set-with"
3169− , "sexp"
3170− , "sexpr"
3171− , "sext"
3172− , "SFML"
3173− , "SFML-control"
3174− , "SFont"
3175− , "SG"
3176− , "SGdemo"
3177− , "sgrep"
3178− , "shadower"
3179− , "shady-gen"
3180− , "shady-graphics"
3181− , "shake-extras"
3182− , "shaker"
3183− , "shakespeare-css"
3184− , "shakespeare-i18n"
3185− , "shapely-data"
3186− , "shared-buffer"
3187− , "she"
3188− , "Shellac"
3189− , "Shellac-compatline"
3190− , "Shellac-editline"
3191− , "Shellac-haskeline"
3192− , "Shellac-readline"
3193− , "shellish"
3194− , "shell-pipe"
3195− , "shivers-cfg"
3196− , "showdown"
3197− , "shpider"
3198− , "sifflet"
3199− , "sifflet-lib"
3200− , "signals"
3201− , "simd"
3202− , "simgi"
3203− , "simple"
3204− , "simple-bluetooth"
3205− , "simple-css"
3206− , "simple-c-value"
3207− , "simple-firewire"
3208− , "simple-form"
3209− , "SimpleGL"
3210− , "SimpleH"
3211− , "simpleirc"
3212− , "simpleirc-lens"
3213− , "SimpleLog"
3214− , "simple-log-syslog"
3215− , "simplenote"
3216− , "simple-pascal"
3217− , "simple-postgresql-orm"
3218− , "simpleprelude"
3219− , "simple-session"
3220− , "simplessh"
3221− , "simple-templates"
3222− , "simple-vec3"
3223− , "simseq"
3224− , "sindre"
3225− , "sirkel"
3226− , "sized"
3227− , "sized-types"
3228− , "sized-vector"
3229− , "skeleton"
3230− , "skype4hs"
3231− , "slack"
3232− , "slidemews"
3233− , "sloth"
3234− , "smallarray"
3235− , "smallpt-hs"
3236− , "smallstring"
3237− , "smartcheck"
3238− , "smartGroup"
3239− , "smartword"
3240− , "sme"
3241− , "Smooth"
3242− , "smt-lib"
3243− , "smtlib2"
3244− , "smtp2mta"
3245− , "smtp-mail-ng"
3246− , "smtps-gmail"
3247− , "snake-game"
3248− , "snap-accept"
3249− , "snap-app"
3250− , "snap-elm"
3251− , "snap-extras"
3252− , "snaplet-actionlog"
3253− , "snaplet-css-min"
3254− , "snaplet-environments"
3255− , "snaplet-haxl"
3256− , "snaplet-hdbc"
3257− , "snaplet-i18n"
3258− , "snaplet-mongoDB"
3259− , "snaplet-mongodb-minimalistic"
3260− , "snaplet-mysql-simple"
3261− , "snaplet-oauth"
3262− , "snaplet-redson"
3263− , "snaplet-rest"
3264− , "snaplet-riak"
3265− , "snaplet-sedna"
3266− , "snaplet-tasks"
3267− , "snaplet-typed-sessions"
3268− , "snaplet-wordpress"
3269− , "snap-predicates"
3270− , "snappy-iteratee"
3271− , "snap-testing"
3272− , "snap-utils"
3273− , "sndfile-enumerators"
3274− , "sneathlane-haste"
3275− , "SNet"
3276− , "snm"
3277− , "snow-white"
3278− , "Snusmumrik"
3279− , "SoccerFun"
3280− , "SoccerFunGL"
3281− , "sock2stream"
3282− , "socketio"
3283− , "socket-sctp"
3284− , "sonic-visualiser"
3285− , "SoOSiM"
3286− , "sorted"
3287− , "sound-collage"
3288− , "source-code-server"
3289− , "sousit"
3290− , "soxlib"
3291− , "soyuz"
3292− , "SpaceInvaders"
3293− , "SpacePrivateers"
3294− , "spanout"
3295− , "sparse"
3296− , "sparsebit"
3297− , "sparsecheck"
3298− , "spata"
3299− , "special-functors"
3300− , "specialize-th"
3301− , "speculation-transformers"
3302− , "sphero"
3303− , "sphinx-cli"
3304− , "spice"
3305− , "spike"
3306− , "splaytree"
3307− , "splines"
3308− , "split-record"
3309− , "splot"
3310− , "Spock-auth"
3311− , "spoonutil"
3312− , "spoty"
3313− , "Sprig"
3314− , "spy"
3315− , "sqlite-simple-typed"
3316− , "sql-simple"
3317− , "sql-simple-mysql"
3318− , "sql-simple-pool"
3319− , "sql-simple-postgresql"
3320− , "sql-simple-sqlite"
3321− , "srcinst"
3322− , "sscgi"
3323− , "ssh"
3324− , "sssp"
3325− , "sstable"
3326− , "stackage-curator"
3327− , "stack-prism"
3328− , "starrover2"
3329− , "stateful-mtl"
3330− , "statgrab"
3331− , "statistics-dirichlet"
3332− , "statistics-fusion"
3333− , "stb-truetype"
3334− , "steeloverseer"
3335− , "step-function"
3336− , "stepwise"
3337− , "stm-chunked-queues"
3338− , "stmcontrol"
3339− , "stm-firehose"
3340− , "Stomp"
3341− , "storable-static-array"
3342− , "storablevector"
3343− , "storablevector-carray"
3344− , "storablevector-streamfusion"
3345− , "Strafunski-Sdf2Haskell"
3346− , "streamed"
3347− , "stream-fusion"
3348− , "StrictBench"
3349− , "strict-concurrency"
3350− , "string"
3351− , "stringlike"
3352− , "structured-mongoDB"
3353− , "structures"
3354− , "stunts"
3355− , "subhask"
3356− , "suitable"
3357− , "sunlight"
3358− , "sunroof-compiler"
3359− , "sunroof-examples"
3360− , "sunroof-server"
3361− , "supercollider-midi"
3362− , "superdoc"
3363− , "supero"
3364− , "supervisor"
3365− , "svg2q"
3366− , "SVG2Q"
3367− , "svm-simple"
3368− , "svndump"
3369− , "swapper"
3370− , "swearjure"
3371− , "swf"
3372− , "swift-lda"
3373− , "sws"
3374− , "syb-extras"
3375− , "sylvia"
3376− , "sym-plot"
3377− , "sync"
3378− , "sync-mht"
3379− , "syntax"
3380− , "syntax-attoparsec"
3381− , "syntax-example"
3382− , "syntax-example-json"
3383− , "SyntaxMacros"
3384− , "syntax-pretty"
3385− , "syntax-printer"
3386− , "syntax-trees"
3387− , "syntax-trees-fork-bairyn"
3388− , "synthesizer"
3389− , "synthesizer-alsa"
3390− , "synthesizer-core"
3391− , "synthesizer-dimensional"
3392− , "synthesizer-midi"
3393− , "Sysmon"
3394− , "system-canonicalpath"
3395− , "system-lifted"
3396− , "system-random-effect"
3397− , "ta"
3398− , "Tables"
3399− , "tablestorage"
3400− , "tabloid"
3401− , "tagged-list"
3402− , "tagged-th"
3403− , "tagsoup-ht"
3404− , "tagsoup-parsec"
3405− , "Takusen"
3406− , "takusen-oracle"
3407− , "tamarin-prover"
3408− , "tamarin-prover-term"
3409− , "tamarin-prover-theory"
3410− , "tamarin-prover-utils"
3411− , "tamper"
3412− , "target"
3413− , "task"
3414− , "tasty-integrate"
3415− , "TBC"
3416− , "tbox"
3417− , "tccli"
3418− , "tcp"
3419− , "tdd-util"
3420− , "TeaHS"
3421− , "teams"
3422− , "telegram"
3423− , "template-default"
3424− , "template-haskell-util"
3425− , "template-hsml"
3426− , "templatepg"
3427− , "tempodb"
3428− , "temporal-csound"
3429− , "tempus"
3430− , "tensor"
3431− , "termbox-bindings"
3432− , "term-rewriting"
3433− , "terrahs"
3434− , "tersmu"
3435− , "test-framework-doctest"
3436− , "test-framework-quickcheck"
3437− , "testloop"
3438− , "testpattern"
3439− , "testPkg"
3440− , "testrunner"
3441− , "tetris"
3442− , "tex2txt"
3443− , "texrunner"
3444− , "text-json-qq"
3445− , "textmatetags"
3446− , "text-normal"
3447− , "textPlot"
3448− , "text-register-machine"
3449− , "texts"
3450− , "text-xml-generic"
3451− , "text-xml-qq"
3452− , "tfp-th"
3453− , "themplate"
3454− , "Theora"
3455− , "theoremquest-client"
3456− , "thih"
3457− , "thimk"
3458− , "Thingie"
3459− , "th-instances"
3460− , "th-kinds"
3461− , "thrift"
3462− , "Thrift"
3463− , "throttle"
3464− , "tianbar"
3465− , "tic-tac-toe"
3466− , "TicTacToe"
3467− , "tiger"
3468− , "tighttp"
3469− , "timberc"
3470− , "timecalc"
3471− , "time-extras"
3472− , "time-http"
3473− , "timeout"
3474− , "timeout-control"
3475− , "timeparsers"
3476− , "time-patterns"
3477− , "TimePiece"
3478− , "timeplot"
3479− , "time-recurrence"
3480− , "time-series"
3481− , "timestamp-subprocess-lines"
3482− , "time-w3c"
3483− , "TinyLaunchbury"
3484− , "TinyURL"
3485− , "Titim"
3486− , "tkhs"
3487− , "tkyprof"
3488− , "tls-extra"
3489− , "todos"
3490− , "to-haskell"
3491− , "toilet"
3492− , "toktok"
3493− , "tokyocabinet-haskell"
3494− , "toml"
3495− , "Top"
3496− , "topkata"
3497− , "torch"
3498− , "to-string-class"
3499− , "to-string-instances"
3500− , "Tournament"
3501− , "tracker"
3502− , "trajectory"
3503− , "transactional-events"
3504− , "transformers-convert"
3505− , "transformers-runnable"
3506− , "translate"
3507− , "traypoweroff"
3508− , "treemap-html-tools"
3509− , "treeviz"
3510− , "tremulous-query"
3511− , "TrendGraph"
3512− , "trhsx"
3513− , "triangulation"
3514− , "TrieMap"
3515− , "trimpolya"
3516− , "true-name"
3517− , "tsession"
3518− , "tsession-happstack"
3519− , "tskiplist"
3520− , "tsp-viz"
3521− , "tuntap"
3522− , "tup-functor"
3523− , "tuple-gen"
3524− , "tupleinstances"
3525− , "tuple-morph"
3526− , "twentefp-rosetree"
3527− , "twhs"
3528− , "twidge"
3529− , "twilight-stm"
3530− , "twilio"
3531− , "twill"
3532− , "twiml"
3533− , "twine"
3534− , "twisty"
3535− , "twitch"
3536− , "twitter"
3537− , "twitter-conduit"
3538− , "twitter-enumerator"
3539− , "twitter-types"
3540− , "twitter-types-lens"
3541− , "tx"
3542− , "TYB"
3543− , "typalyze"
3544− , "typeable-th"
3545− , "type-cereal"
3546− , "TypeClass"
3547− , "type-digits"
3548− , "typedquery"
3549− , "type-equality-check"
3550− , "typehash"
3551− , "TypeIlluminator"
3552− , "type-int"
3553− , "type-level"
3554− , "type-level-bst"
3555− , "type-level-sets"
3556− , "typelevel-tensor"
3557− , "type-list"
3558− , "TypeNat"
3559− , "type-natural"
3560− , "type-ord"
3561− , "type-ord-spine-cereal"
3562− , "typeparams"
3563− , "type-prelude"
3564− , "typescript-docs"
3565− , "type-settheory"
3566− , "type-spine"
3567− , "type-structure"
3568− , "type-sub-th"
3569− , "typography-geometry"
3570− , "uAgda"
3571− , "uberlast"
3572− , "uconv"
3573− , "udbus"
3574− , "udbus-model"
3575− , "udev"
3576− , "ui-command"
3577− , "UMM"
3578− , "unamb-custom"
3579− , "unbound"
3580− , "unbounded-delays-units"
3581− , "unboxed-containers"
3582− , "unicode-normalization"
3583− , "unicoder"
3584− , "uniform-io"
3585− , "union-map"
3586− , "uniqueid"
3587− , "unique-logic-tf"
3588− , "units"
3589− , "units-defs"
3590− , "unittyped"
3591− , "universe-th"
3592− , "unix-process-conduit"
3593− , "unlit"
3594− , "unordered-containers-rematch"
3595− , "unpack-funcs"
3596− , "unscramble"
3597− , "up"
3598− , "uploadcare"
3599− , "upskirt"
3600− , "ureader"
3601− , "urembed"
3602− , "uri-conduit"
3603− , "uri-enumerator"
3604− , "uri-enumerator-file"
3605− , "urlcheck"
3606− , "urldecode"
3607− , "UrlDisp"
3608− , "urldisp-happstack"
3609− , "url-generic"
3610− , "URLT"
3611− , "urxml"
3612− , "usb-enumerator"
3613− , "usb-iteratee"
3614− , "usb-safe"
3615− , "uuagc-diagrams"
3616− , "uu-tc"
3617− , "uvector"
3618− , "uvector-algorithms"
3619− , "v4l2"
3620− , "v4l2-examples"
3621− , "vacuum"
3622− , "vacuum-cairo"
3623− , "vacuum-graphviz"
3624− , "vacuum-opengl"
3625− , "vacuum-ubigraph"
3626− , "validate"
3627− , "vampire"
3628− , "var"
3629− , "vaultaire-common"
3630− , "vcard"
3631− , "Vec-Boolean"
3632− , "Vec-OpenGLRaw"
3633− , "vector-bytestring"
3634− , "vector-clock"
3635− , "vector-conduit"
3636− , "vector-fftw"
3637− , "vector-functorlazy"
3638− , "vector-instances-collections"
3639− , "vector-random"
3640− , "vector-read-instances"
3641− , "vector-space-opengl"
3642− , "vector-static"
3643− , "Vec-Transform"
3644− , "verilog"
3645− , "vigilance"
3646− , "vintage-basic"
3647− , "vinyl"
3648− , "vinyl-gl"
3649− , "vinyl-json"
3650− , "vinyl-utils"
3651− , "virthualenv"
3652− , "vision"
3653− , "visual-graphrewrite"
3654− , "visual-prof"
3655− , "vk-aws-route53"
3656− , "VKHS"
3657− , "vorbiscomment"
3658− , "vowpal-utils"
3659− , "voyeur"
3660− , "vtegtk3"
3661− , "vty-examples"
3662− , "vty-menu"
3663− , "vty-ui"
3664− , "vty-ui-extras"
3665− , "wai-cors"
3666− , "wai-eventsource"
3667− , "wai-graceful"
3668− , "wai-handler-devel"
3669− , "wai-handler-snap"
3670− , "wai-handler-webkit"
3671− , "wai-hastache"
3672− , "wai-lite"
3673− , "wai-logger-prefork"
3674− , "wai-middleware-cache"
3675− , "wai-middleware-cache-redis"
3676− , "wai-middleware-catch"
3677− , "wai-middleware-consul"
3678− , "wai-middleware-etag"
3679− , "wai-middleware-headers"
3680− , "wai-middleware-hmac-client"
3681− , "wai-middleware-preprocessor"
3682− , "wai-middleware-route"
3683− , "wai-middleware-static-caching"
3684− , "wai-predicates"
3685− , "wai-routing"
3686− , "wai-session-tokyocabinet"
3687− , "wai-static-cache"
3688− , "wai-throttler"
3689− , "waitra"
3690− , "warp-dynamic"
3691− , "warp-static"
3692− , "warp-tls-uid"
3693− , "WashNGo"
3694− , "watchdog"
3695− , "watcher"
3696− , "watchit"
3697− , "wavesurfer"
3698− , "weather-api"
3699− , "WebBits-Html"
3700− , "WebBits-multiplate"
3701− , "web-browser-in-haskell"
3702− , "WebCont"
3703− , "webcrank-dispatch"
3704− , "webcrank-wai"
3705− , "webdriver-snoy"
3706− , "web-encodings"
3707− , "webify"
3708− , "webkit-javascriptcore"
3709− , "web-mongrel2"
3710− , "Webrexp"
3711− , "web-routes-quasi"
3712− , "web-routes-transformers"
3713− , "webserver"
3714− , "websnap"
3715− , "webwire"
3716− , "wedged"
3717− , "weighted-regexp"
3718− , "welshy"
3719− , "Wheb"
3720− , "wheb-mongo"
3721− , "wheb-redis"
3722− , "wheb-strapped"
3723− , "whim"
3724− , "whitespace"
3725− , "WikimediaParser"
3726− , "wikipedia4epub"
3727− , "Win32-dhcp-server"
3728− , "Win32-errors"
3729− , "Win32-extras"
3730− , "Win32-junction-point"
3731− , "Win32-notify"
3732− , "Win32-security"
3733− , "Win32-services"
3734− , "Win32-services-wrapper"
3735− , "windowslive"
3736− , "winerror"
3737− , "winio"
3738− , "WL500gPControl"
3739− , "wlc-hs"
3740− , "wobsurv"
3741− , "woffex"
3742− , "wolf"
3743− , "word24"
3744− , "wordcloud"
3745− , "Wordlint"
3746− , "WordNet"
3747− , "WordNet-ghc74"
3748− , "wordsearch"
3749− , "wp-archivebot"
3750− , "wraxml"
3751− , "wright"
3752− , "wtk"
3753− , "wtk-gtk"
3754− , "wumpus-basic"
3755− , "wumpus-core"
3756− , "wumpus-drawing"
3757− , "wumpus-microprint"
3758− , "wumpus-tree"
3759− , "WURFL"
3760− , "wxAsteroids"
3761− , "WXDiffCtrl"
3762− , "wxFruit"
3763− , "wxhnotepad"
3764− , "wxturtle"
3765− , "wyvern"
3766− , "X11-extras"
3767− , "X11-rm"
3768− , "X11-xdamage"
3769− , "X11-xfixes"
3770− , "x11-xinput"
3771− , "x509-util"
3772− , "xchat-plugin"
3773− , "x-dsp"
3774− , "Xec"
3775− , "xfconf"
3776− , "xhaskell-library"
3777− , "xhb-ewmh"
3778− , "xine"
3779− , "xing-api"
3780− , "XInput"
3781− , "xkcd"
3782− , "xlsior"
3783− , "xlsx-templater"
3784− , "xml2json"
3785− , "xml2x"
3786− , "xml-catalog"
3787− , "xml-enumerator"
3788− , "xml-enumerator-combinators"
3789− , "XmlHtmlWriter"
3790− , "xml-parsec"
3791− , "xml-pipe"
3792− , "xml-prettify"
3793− , "xml-push"
3794− , "xmltv"
3795− , "XMMS"
3796− , "xmms2-client"
3797− , "xmms2-client-glib"
3798− , "xmonad-bluetilebranch"
3799− , "xmonad-contrib-bluetilebranch"
3800− , "xmonad-eval"
3801− , "xmpipe"
3802− , "XMPP"
3803− , "xournal-builder"
3804− , "xournal-convert"
3805− , "xournal-parser"
3806− , "xournal-render"
3807− , "xournal-types"
3808− , "xsact"
3809− , "XSaiga"
3810− , "xslt"
3811− , "y0l0bot"
3812− , "Yablog"
3813− , "yackage"
3814− , "YACPong"
3815− , "yahoo-web-search"
3816− , "yajl"
3817− , "yajl-enumerator"
3818− , "yaml2owl"
3819− , "YamlReference"
3820− , "yaml-rpc"
3821− , "yaml-rpc-scotty"
3822− , "yaml-rpc-snap"
3823− , "yampa-canvas"
3824− , "yampa-glfw"
3825− , "yampa-glut"
3826− , "yaop"
3827− , "yarr"
3828− , "yarr-image-io"
3829− , "yavie"
3830− , "ycextra"
3831− , "yesod-angular-ui"
3832− , "yesod-auth-account-fork"
3833− , "yesod-auth-kerberos"
3834− , "yesod-auth-ldap"
3835− , "yesod-auth-pam"
3836− , "yesod-auth-smbclient"
3837− , "yesod-bootstrap"
3838− , "yesod-comments"
3839− , "yesod-continuations"
3840− , "yesod-datatables"
3841− , "yesod-dsl"
3842− , "yesod-eventsource"
3843− , "yesod-examples"
3844− , "yesod-goodies"
3845− , "yesod-links"
3846− , "yesod-mangopay"
3847− , "yesod-paginate"
3848− , "yesod-pagination"
3849− , "yesod-paginator"
3850− , "yesod-platform"
3851− , "yesod-pure"
3852− , "yesod-purescript"
3853− , "yesod-raml"
3854− , "yesod-routes-flow"
3855− , "yesod-routes-typescript"
3856− , "yesod-rst"
3857− , "yesod-s3"
3858− , "yesod-session-redis"
3859− , "yesod-tableview"
3860− , "yesod-test-json"
3861− , "yesod-tls"
3862− , "yesod-vend"
3863− , "yesod-worker"
3864− , "YFrob"
3865− , "yhccore"
3866− , "yi-contrib"
3867− , "yi-fuzzy-open"
3868− , "yi-gtk"
3869− , "yi-vty"
3870− , "yjftp"
3871− , "Yogurt"
3872− , "Yogurt-Standalone"
3873− , "yoko"
3874− , "york-lava"
3875− , "yql"
3876− , "yuiGrid"
3877− , "yuuko"
3878− , "zampolit"
3879− , "zasni-gerna"
3880− , "zendesk-api"
3881− , "zeno"
3882− , "zeromq3-conduit"
3883− , "zeromq3-haskell"
3884− , "zeromq-haskell"
3885− , "zeroth"
3886− , "ZFS"
3887− , "zipedit"
3888− , "ZMachine"
3889− , "zmcat"
3890− , "zmqat"
3891− , "zoneinfo"
3892− , "zoom"
3893− , "zoom-cache"
3894− , "zoom-cache-pcm"
3895− , "zoom-cache-sndfile"
3896− , "zot"
3897− , "zsh-battery"
3898− , "ztail"
3899− , "Zwaluw"
3900− , "yesod-media-simple"
3901− , "token-utils"
3902− , "ghc-imported-from"
3903− , "libhbb"
3904− , "hoogle-index"
3905− , "reflex-dom"
3906− , "HaRe"
3907− , "aws-configuration-tools"
3908− , "aws-dynamodb-streams"
3909− , "aws-general"
3910− , "aws-kinesis-client"
3911− , "aws-kinesis"
3912− , "aws-performance-tests"
3913− , "byline"
3914− , "glambda"
3915− , "haskell-token-utils"
3916− , "hbb"
3917− , "octohat"
3918− , "orchestrate"
3919− , "pdf-toolbox-content"
3920− , "pdf-toolbox-core"
3921− , "pdf-toolbox-document"
3922− , "pdf-toolbox-viewer"
3923− , "riemann"
3924− , "tellbot"
3925− , "terminfo-hs"
3926− , "vimeta"
3927− , "ply-loader"
3928− , "bitvec"
3929− , "full-text-search"
3930− , "QuadEdge"
3931− , "sdr"
3932− , "these"
3933− , "tz"
3934− , "jacobi-roots"
3935− , "atomic-primops-vector"
3936− , "OrderedBits"
3937− , "pipes-csv"
3938− , "hybrid-vectors"
3939− , "hyperloglog"
3940− , "bitstream"
3941− , "repa-stream"
3942− , "dph-prim-seq"
3943− , "compensated"
3944− , "ADPfusion"
3945− , "GrammarProducts"
3946− , "reflex"
3947− , "reflex-gloss"
3948− , "AlignmentAlgorithms"
3949− , "GenussFold"
3950− , "PrimitiveArray"
3951− , "FormalGrammars"
3952− , "BiobaseXNA"
3953− , "BiobaseTypes"
3954− , "broker-haskell"
3955− , "concurrent-machines"
3956− , "darcs-fastconvert"
3957− , "ivory-backend-c"
3958− , "ivory-bitdata"
3959− , "ivory-examples"
3960− , "ivory-hw"
3961− , "laborantin-hs"
3962− , "magico"
3963− , "resistor-cube"
3964− , "taskpool"
3965− , "wai-middleware-metrics"
3966− ]
3967−
3968−}