{-# LANGUAGE PatternGuards #-} module Main ( main ) where {- I use the following shell script to re-build "hackage-packages.nix": | #! /bin/sh | | set -eu -o pipefail | | cd ~/src/cabal2nix | make --quiet cabal2nix.cabal | cabal build -j hackage2nix | time dist/build/hackage2nix/hackage2nix >hackage-packages.nix | mv hackage-packages.nix ~/.nix-defexpr/pkgs/development/haskell-modules/hackage-packages.nix | nix-env -qaP -A haskellngPackages | tail -1 Make sure that "nix-env -qaP" shows the top-level Nixpkgs attributes at the top level, i.e. without any prefix like "nixos.pkgs". Otherwise, the code that resolver in Distribution/Nixpkgs/PackageMap.hs will produce bogus results. -} -- Run: cabal build -j hackage2nix && time dist/build/hackage2nix/hackage2nix >hackage-packages.nix && mv hackage-packages.nix ~/.nix-defexpr/pkgs/development/haskell-modules/hackage-packages.nix && nix-env -qaP -A haskellngPackages | tail -1 import Cabal2Nix.Flags ( configureCabalFlags ) import Cabal2Nix.Generate ( cabal2nix' ) import Cabal2Nix.Hackage ( readHashedHackage, Hackage ) import Cabal2Nix.Package import Data.List import Data.Function import Control.Monad import Control.Monad.Par.Combinator import Control.Monad.Par.IO import Control.Monad.Trans ( liftIO ) import Data.Map.Strict ( Map ) import qualified Data.Map.Strict as Map import Data.Maybe import Data.Monoid import Data.Set ( Set ) import qualified Data.Set as Set import Distribution.Compiler import Distribution.Nixpkgs.Haskell import Distribution.Nixpkgs.PackageMap import Distribution.Nixpkgs.Util.PrettyPrinting hiding ( attr, (<>) ) import Distribution.Package import Distribution.PackageDescription hiding ( buildDepends, extraLibs, buildTools ) import Distribution.PackageDescription.Configuration import Distribution.System import Distribution.Text import Distribution.Version type Nixpkgs = PackageMap -- Map String (Set [String]) type PackageSet = Map String Version type PackageMultiSet = Map String (Set Version) type Constraint = Dependency resolveConstraint :: Constraint -> Hackage -> Version resolveConstraint c = fromMaybe (error ("constraint " ++ display c ++ " cannot be resolved in Hackage")) . resolveConstraint' c resolveConstraint' :: Constraint -> Hackage -> Maybe Version resolveConstraint' (Dependency (PackageName name) vrange) hackage | Set.null vs = Nothing | otherwise = Just (Set.findMax vs) where vs = Set.filter (`withinRange` vrange) (Map.keysSet (hackage Map.! name)) data Configuration = Configuration { -- |Target architecture. Used by 'finalizePackageDescription' to -- choose appropriate flags and dependencies. platform :: Platform -- |Target compiler. Used by 'finalizePackageDescription' to choose -- appropriate flags and dependencies. , compilerInfo :: CompilerInfo -- |Core packages found on Hackageg , corePackages :: [PackageIdentifier] -- |Core packages not found on Hackage. , hardCorePackages :: [PackageIdentifier] -- |These packages replace the latest respective version during -- dependency resolution. , defaultPackageOverrides :: [Constraint] -- |These packages are added to the generated set, but the play no -- role during dependency resolution. , extraPackages :: [Constraint] -- |These packages have not succeeded a build yet, so we give them an -- empty meta.hydraPlatforms attribute to avoid cluttering our Hydra -- output with lots of broken builds. , brokenPackages :: Set PackageName } deriving (Read, Show) main :: IO () main = do hackage <- readHashedHackage nixpkgs <- readNixpkgPackageMap let fixup = Map.delete "acme-everything" -- TODO: https://github.com/NixOS/cabal2nix/issues/164 . Map.delete "som" -- TODO: https://github.com/NixOS/cabal2nix/issues/164 . Map.delete "type" -- TODO: https://github.com/NixOS/cabal2nix/issues/163 . Map.delete "dictionary-sharing" -- TODO: https://github.com/NixOS/cabal2nix/issues/175 runParIO $ generatePackageSet defaultConfiguration (fixup hackage) nixpkgs generatePackageSet :: Configuration -> Hackage -> Nixpkgs -> ParIO () generatePackageSet config hackage nixpkgs = do let corePackageSet :: PackageSet corePackageSet = Map.fromList [ (name, v) | PackageIdentifier (PackageName name) v <- corePackages config ++ hardCorePackages config ] latestVersionSet :: PackageSet latestVersionSet = Map.map (Set.findMax . Map.keysSet) hackage defaultPackageOverridesSet :: PackageSet defaultPackageOverridesSet = Map.fromList [ (name, resolveConstraint c hackage) | c@(Dependency (PackageName name) _) <- defaultPackageOverrides config ] generatedDefaultPackageSet :: PackageSet generatedDefaultPackageSet = (defaultPackageOverridesSet `Map.union` latestVersionSet) `Map.difference` corePackageSet latestCorePackageSet :: PackageSet latestCorePackageSet = latestVersionSet `Map.intersection` corePackageSet latestOverridePackageSet :: PackageSet latestOverridePackageSet = latestVersionSet `Map.intersection` defaultPackageOverridesSet extraPackageSet :: PackageMultiSet extraPackageSet = Map.unionsWith Set.union [ Map.singleton name (Set.singleton (resolveConstraint c hackage)) | c@(Dependency (PackageName name) _) <- extraPackages config ] db :: PackageMultiSet db = Map.unionsWith Set.union [ Map.map Set.singleton generatedDefaultPackageSet , Map.map Set.singleton latestCorePackageSet , Map.map Set.singleton latestOverridePackageSet , extraPackageSet ] knownAttributesSet :: Set String knownAttributesSet = Set.union (Map.keysSet hackage) (Map.keysSet corePackageSet) resolver :: Dependency -> Bool resolver (Dependency (PackageName name) vrange) | Just v <- Map.lookup name corePackageSet = v `withinRange` vrange | Just v <- Map.lookup name generatedDefaultPackageSet = v `withinRange` vrange | otherwise = False liftIO $ do putStrLn "/* hackage-packages.nix is an auto-generated file -- DO NOT EDIT! */" putStrLn "" putStrLn "{ pkgs, stdenv, callPackage }:" putStrLn "" putStrLn "self: {" putStrLn "" pkgs <- flip parMapM (Map.toAscList db) $ \(name, vs) -> do defs <- forM (Set.toAscList vs) $ \pkgversion -> do srcSpec <- liftIO $ sourceFromHackage Nothing (name ++ "-" ++ display pkgversion) let Just cabalFileHash = lookup "x-cabal-file-hash" (customFieldsPD (packageDescription descr)) -- TODO: Include list of broken dependencies in the generated output. descr = hackage Map.! name Map.! pkgversion (missingDeps, _, drv') = cabal2nix resolver descr drv = drv' { src = srcSpec, editedCabalFile = if revision drv == 0 then "" else cabalFileHash , metaSection = (metaSection drv') { broken = not (Set.null missing) -- Missing Haskell dependencies! , hydraPlatforms = if PackageName name `Set.member` brokenPackages config then Set.singleton "stdenv.lib.platforms.none" else hydraPlatforms (metaSection drv') } , jailbreak = not (null missingDeps) -- Dependency constraints aren't fulfilled && name /= "jailbreak-cabal" -- Recursion: see "recursion". } missing :: Set String missing = Set.filter (`Set.notMember` knownAttributesSet) (buildDepends drv `Set.union` testDepends drv) buildInputs :: Map Attribute (Maybe Path) buildInputs = Map.unions [ Map.fromList [ (n, Nothing) | n <- Set.toList missing ] , Map.fromList [ (n, resolveNixpkgsAttribute nixpkgs n) | n <- Set.toAscList (extraLibs drv `Set.union` pkgConfDeps drv) ] , Map.fromList [ (n, resolveNixpkgsOrHackageAttribute nixpkgs hackage n) | n <- Set.toAscList (buildTools drv) ] ] systemOverrides :: Doc systemOverrides = fsep (map (uncurry formatOverride) (Map.toAscList buildInputs)) formatOverride :: Attribute -> Maybe Path -> Doc formatOverride n Nothing = space <> text n <> text " = null;" -- missing attribute formatOverride n (Just []) -- Haskell package: | n == name = formatOverride n Nothing -- refers to a missing system library | otherwise = empty -- found by callPackage formatOverride n (Just p) = (text " inherit" <+> parens (text (intercalate "." p)) <+> text n) <> semi overrides :: Doc overrides = systemOverrides attr | Just v <- Map.lookup name generatedDefaultPackageSet, v == pkgversion = name | otherwise = name ++ '_' : [ if c == '.' then '_' else c | c <- display pkgversion ] return $ nest 2 $ hang (string attr <+> equals <+> text "callPackage") 2 (parens (pPrint drv)) <+> (braces overrides <> semi) return (intercalate "\n\n" (map render defs)) liftIO $ mapM_ (\pkg -> putStrLn pkg >> putStrLn "") pkgs liftIO $ putStrLn "}" resolveNixpkgsOrHackageAttribute :: Nixpkgs -> Hackage -> Attribute -> Maybe Path resolveNixpkgsOrHackageAttribute nixpkgs hackage name | p@(Just _) <- resolveNixpkgsAttribute nixpkgs name = p | Just _ <- Map.lookup name hackage = Just [] | otherwise = Nothing resolveNixpkgsAttribute :: Nixpkgs -> Attribute -> Maybe Path resolveNixpkgsAttribute nixpkgs name | name `elem` ["clang","lldb","llvm"] = Just ["self","llvmPackages"] | Just paths <- Map.lookup name nixpkgs = getShortestPath (Set.toList (paths `Set.intersection` goodScopes)) | otherwise = Nothing where goodScopes :: Set Path goodScopes = Set.fromList [[], ["xlibs"], ["gnome"], ["gnome3"], ["kde4"]] getShortestPath :: [Path] -> Maybe Path getShortestPath [] = Nothing getShortestPath ps = Just ("pkgs" : minimumBy (on compare length) ps) cabal2nix :: (Dependency -> Bool) -> GenericPackageDescription -> ([Dependency], FlagAssignment, Derivation) cabal2nix resolver cabal = (missingDeps, flags, drv) where drv = cabal2nix' descr Right (descr, flags) = finalize (if null missingDeps then resolver else const True) cabal missingDeps :: [Dependency] missingDeps = either id (const []) (finalize resolver cabal') finalize :: (Dependency -> Bool) -> GenericPackageDescription -> Either [Dependency] (PackageDescription, FlagAssignment) finalize resolver' = finalizePackageDescription (configureCabalFlags (package (packageDescription cabal))) resolver' (platform defaultConfiguration) (compilerInfo defaultConfiguration) [] -- no additional constraints -- A variant of the cabal file that has all test suites enabled to ensure -- that their dependencies are recognized by finalizePackageDescription. cabal' :: GenericPackageDescription cabal' = cabal { condTestSuites = flaggedTests } flaggedTests :: [(String, CondTree ConfVar [Dependency] TestSuite)] flaggedTests = map (\(n, t) -> (n, mapTreeData enableTest t)) (condTestSuites cabal) enableTest :: TestSuite -> TestSuite enableTest t = t { testEnabled = True } defaultConfiguration :: Configuration defaultConfiguration = Configuration { platform = Platform X86_64 Linux , compilerInfo = unknownCompilerInfo (CompilerId GHC (Version [7,10,1] [])) NoAbiTag , defaultPackageOverrides = map (\s -> fromMaybe (error (show s ++ " is not a valid override selector")) (simpleParse s)) [ "errors < 2" -- the update breaks some ~40 important packages , "scotty < 0.10" -- newer versions break virtually all dependencies , "cryptonite < 0.5" -- https://github.com/vincenthz/hs-certificate/issues/54 ] , corePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s)) [ "Cabal-1.22.2.0" , "array-0.5.1.0" , "base-4.8.0.0" , "binary-0.7.3.0" , "bytestring-0.10.6.0" , "containers-0.5.6.2" , "deepseq-1.4.1.1" , "directory-1.2.2.0" , "filepath-1.4.0.0" , "ghc-prim-0.4.0.0" , "haskeline-0.7.2.1" , "hoopl-3.10.0.2" , "hpc-0.6.0.2" , "integer-gmp-1.0.0.0" , "pretty-1.1.2.0" , "process-1.2.3.0" , "template-haskell-2.10.0.0" , "terminfo-0.4.0.1" , "time-1.5.0.1" , "transformers-0.4.2.0" , "unix-2.7.1.0" , "xhtml-3000.2.1" ] , hardCorePackages = map (\s -> fromMaybe (error (show s ++ " is not a valid core package")) (simpleParse s)) [ "bin-package-db-0.0.0.0" , "ghc-7.8.4" , "rts-1.0" ] , extraPackages = map (\s -> fromMaybe (error (show s ++ " is not a valid extra package selector")) (simpleParse s)) [ "aeson < 0.8" -- newer versions don't work with GHC 6.12.3 , "Cabal == 1.18.*" -- required for cabal-install et al on old GHC versions , "Cabal == 1.20.*" -- required for cabal-install et al on old GHC versions , "cabal-install == 1.18.*" -- required for ghc-mod on 7.8.x , "conduit < 1.2.4.2" -- newer versions trigger non-deterministic ID bugs in GHC versions prior to 7.10.x , "containers < 0.5" -- required to build alex with GHC 6.12.3 , "control-monad-free < 0.6" -- newer versions don't compile with anything but GHC 7.8.x , "deepseq == 1.3.0.1" -- required to build Cabal with GHC 6.12.3 , "descriptive < 0.1" -- required for structured-haskell-mode-1.0.8 , "gloss < 1.9.3" -- new versions don't compile with GHC 7.8.x , "haddock-api < 2.16" -- required on GHC 7.8.x , "haskell-src-exts < 1.16" -- required for structured-haskell-mode-1.0.8 , "mtl < 2.2" -- newer versions require transformers > 0.4.x, which we cannot provide in GHC 7.8.x , "mtl-prelude < 2" -- required for to build postgrest on mtl 2.1.x platforms , "optparse-applicative == 0.10.*" -- required for elm-make 0.1.1 and elm-package 0.4 , "parallel == 3.2.0.3" -- newer versions don't work with GHC 6.12.3 , "primitive == 0.5.1.*" -- required to build alex with GHC 6.12.3 , "QuickCheck < 2" -- required by test-framework-quickcheck and its users , "seqid < 0.2" -- newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x , "seqid-streams < 0.2" -- newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x , "split < 0.2" -- newer versions don't work with GHC 6.12.3 , "vector < 0.10.10" -- newer versions don't work with GHC 6.12.3 , "zlib < 0.6" -- newer versions break cabal-install ] , brokenPackages = Set.fromList $ map PackageName [ "3d-graphics-examples" , "3dmodels" , "4Blocks" , "abcBridge" , "abstract-par-accelerate" , "abt" , "AC-BuildPlatform" , "accelerate-arithmetic" , "accelerate-fftw" , "accelerate-fourier" , "accelerate-io" , "accelerate-utility" , "accentuateus" , "access-time" , "AC-EasyRaster-GTK" , "AC-HalfInteger" , "ACME" , "acme-hq9plus" , "acme-inator" , "acme-numbersystem" , "acme-schoenfinkel" , "AC-MiniTest" , "AC-Terminal" , "ActionKid" , "activehs" , "actor" , "AC-VanillaArray" , "Adaptive" , "Adaptive-Blaisorblade" , "adaptive-containers" , "adaptive-tuple" , "adblock2privoxy" , "adhoc-network" , "adict" , "adobe-swatch-exchange" , "adp-multi" , "adp-multi-monadiccp" , "Advgame" , "AERN-Basics" , "AERN-Net" , "AERN-Real" , "AERN-Real-Double" , "AERN-Real-Interval" , "AERN-RnToRm" , "AERN-RnToRm-Plot" , "aeson-bson" , "AesonBson" , "aeson-native" , "aeson-smart" , "afv" , "Agata" , "Agda" , "Agda-executable" , "agda-server" , "AGI" , "AhoCorasick" , "airbrake" , "aivika-experiment-diagrams" , "aivika-transformers" , "ajhc" , "alea" , "alex-meta" , "algebra-dag" , "algebraic" , "algebra-sql" , "alms" , "alpha" , "alpino-tools" , "alsa" , "alsa-midi" , "alsa-pcm-tests" , "alsa-seq-tests" , "altfloat" , "alure" , "amazon-emailer" , "amazon-products" , "AMI" , "ampersand" , "anansi" , "anansi-hscolour" , "anansi-pandoc" , "anatomy" , "AndroidViewHierarchyImporter" , "angel" , "Animas" , "Annotations" , "antfarm" , "anticiv" , "antigate" , "antimirov" , "antlrc" , "anydbm" , "aosd" , "apelsin" , "apiary-helics" , "apis" , "api-tools" , "apotiki" , "app-lens" , "ApplePush" , "AppleScript" , "approx-rand-test" , "arbb-vm" , "arb-fft" , "archiver" , "archlinux" , "archlinux-web" , "arff" , "argparser" , "arguedit" , "ariadne" , "armada" , "array-forth" , "ArrayRef" , "arrowapply-utils" , "arrow-improve" , "arrowp" , "ArrowVHDL" , "arx" , "ascii85-conduit" , "asic" , "asil" , "asn1-data" , "AspectAG" , "assimp" , "astrds" , "astview" , "async-extras" , "aterm-utils" , "atlassian-connect-core" , "atlassian-connect-descriptor" , "atom" , "atom-basic" , "atom-msp430" , "atomo" , "attoparsec-csv" , "attoparsec-iteratee" , "attoparsec-text" , "attoparsec-text-enumerator" , "Attrac" , "atuin" , "augeas" , "augur" , "Aurochs" , "authoring" , "AutoForms" , "autoproc" , "avahi" , "avers" , "AvlTree" , "awesomium" , "awesomium-glut" , "awesomium-raw" , "AWin32Console" , "aws-cloudfront-signer" , "aws-ec2" , "aws-elastic-transcoder" , "aws-kinesis-reshard" , "aws-lambda" , "aws-sdk" , "aws-sdk-text-converter" , "aws-sdk-xml-unordered" , "aws-sign4" , "aws-sns" , "azure-service-api" , "azurify" , "backdropper" , "bag" , "Baggins" , "bamboo" , "bamboo-launcher" , "bamboo-plugin-highlight" , "bamboo-plugin-photo" , "bamboo-theme-blueprint" , "bamboo-theme-mini-html5" , "bamse" , "barcodes-code128" , "barley" , "Barracuda" , "barrie" , "barrier-monad" , "baskell" , "battleships" , "bayes-stack" , "BCMtools" , "beamable" , "beautifHOL" , "bed-and-breakfast" , "Befunge93" , "bein" , "berkeleydb" , "BerkeleyDBXML" , "berp" , "bff" , "bgzf" , "bidirectionalization-combined" , "bidispec" , "billboard-parser" , "billeksah-forms" , "billeksah-main" , "billeksah-pane" , "billeksah-services" , "binary-derive" , "binary-file" , "binary-indexed-tree" , "binary-protocol-zmq" , "binary-streams" , "binary-strict" , "binding-gtk" , "bindings-apr" , "bindings-apr-util" , "bindings-bfd" , "bindings-cctools" , "bindings-codec2" , "bindings-common" , "bindings-dc1394" , "bindings-eskit" , "bindings-EsounD" , "bindings-fann" , "bindings-friso" , "bindings-gts" , "bindings-hdf5" , "bindings-K8055" , "bindings-levmar" , "bindings-libftdi" , "bindings-librrd" , "bindings-libstemmer" , "bindings-libv4l2" , "bindings-linux-videodev2" , "bindings-mpdecimal" , "bindings-nettle" , "bindings-sc3" , "bindings-sipc" , "bind-marshal" , "bio" , "Biobase" , "BiobaseBlast" , "BiobaseDotP" , "BiobaseFasta" , "BiobaseFR3D" , "BiobaseInfernal" , "BiobaseMAF" , "BiobaseTrainingData" , "BiobaseTurner" , "BiobaseTypes" , "BiobaseVienna" , "biophd" , "biosff" , "biostockholm" , "bird" , "BirdPP" , "bit-array" , "bitcoin-rpc" , "Bitly" , "bitly-cli" , "bitmap" , "bitmap-opengl" , "bitmaps" , "bits-conduit" , "bitset" , "bitspeak" , "BitSyntax" , "bittorrent" , "bitx-bitcoin" , "bkr" , "bla" , "black-jewel" , "blakesum" , "blakesum-demo" , "blas" , "blas-hs" , "blaze" , "blaze-html-contrib" , "blaze-html-hexpat" , "blazeMarker" , "blaze-textual-native" , "Blobs" , "blogination" , "BlogLiterately-diagrams" , "bloxorz" , "Blueprint" , "bluetile" , "BNFC-meta" , "board-games" , "bogre-banana" , "Bookshelf" , "boolean-normal-forms" , "bools" , "boomslang" , "borel" , "bot" , "brainfuck-monad" , "Bravo" , "breakout" , "brians-brain" , "brillig" , "bsd-sysctl" , "bson-generics" , "bson-mapping" , "btree-concurrent" , "bugzilla" , "buildbox-tools" , "buildwrapper" , "bullet" , "buster" , "Buster" , "buster-gtk" , "buster-network" , "bustle" , "bytable" , "bytestring-class" , "bytestring-csv" , "bytestringparser" , "bytestring-plain" , "bytestringreadp" , "bytestring-rematch" , "bytestring-short" , "cabal2arch" , "cabal2doap" , "cabal2spec" , "cabal-constraints" , "cabal-dev" , "cabal-ghci" , "cabalgraph" , "cabal-graphdeps" , "cabal-install-bundle" , "cabal-install-ghc72" , "cabal-install-ghc74" , "cabalmdvrpm" , "cabal-query" , "cabalrpmdeps" , "cabal-scripts" , "cabal-setup" , "cabal-test" , "cabal-upload" , "cabocha" , "cake" , "cake3" , "cakyrespa" , "cal3d" , "cal3d-examples" , "cal3d-opengl" , "calc" , "caldims" , "caledon" , "call-haskell-from-anything" , "campfire" , "cantor" , "cao" , "cap" , "Capabilities" , "capri" , "carboncopy" , "carettah" , "casadi-bindings" , "casadi-bindings-control" , "casadi-bindings-core" , "casadi-bindings-internal" , "casadi-bindings-ipopt-interface" , "casadi-bindings-snopt-interface" , "Cascade" , "cascading" , "cash" , "cassandra-thrift" , "cassava-streams" , "cassy" , "casui" , "Catana" , "catch-fd" , "categorical-algebra" , "category-extras" , "CBOR" , "CC-delcont" , "CC-delcont-alt" , "CC-delcont-cxe" , "CC-delcont-exc" , "CC-delcont-ref" , "CC-delcont-ref-tf" , "cci" , "cctools-workqueue" , "cedict" , "ceilometer-common" , "cereal-enumerator" , "cereal-ieee754" , "cereal-plus" , "certificate" , "cf" , "cfipu" , "cflp" , "cfopu" , "cgen" , "cgi-utils" , "chalkboard" , "chalkboard-viewer" , "charade" , "Chart-diagrams" , "chatter" , "checked" , "check-pvp" , "chevalier-common" , "Chitra" , "chp" , "chp-mtl" , "chp-plus" , "chp-spec" , "chp-transformers" , "ChristmasTree" , "chronograph" , "chuchu" , "chunks" , "church-list" , "cil" , "cinvoke" , "c-io" , "cio" , "citation-resolve" , "citeproc-hs" , "citeproc-hs-pandoc-filter" , "cjk" , "clac" , "clafer" , "claferIG" , "claferwiki" , "CLASE" , "clash" , "clash-ghc" , "clash-prelude" , "clash-prelude-quickcheck" , "clash-systemverilog" , "clash-vhdl" , "ClassLaws" , "ClassyPrelude" , "clckwrks" , "clckwrks-cli" , "clckwrks-dot-com" , "clckwrks-plugin-bugs" , "clckwrks-plugin-ircbot" , "clckwrks-plugin-media" , "clckwrks-plugin-page" , "clckwrks-theme-bootstrap" , "clckwrks-theme-clckwrks" , "clckwrks-theme-geo-bootstrap" , "Clean" , "clevercss" , "clifford" , "clipper" , "clippings" , "clocked" , "clogparse" , "clone-all" , "cloudfront-signer" , "cloud-haskell" , "cloudyfs" , "clua" , "cluss" , "clustering" , "clustertools" , "clutterhs" , "cmaes" , "cmath" , "cmathml3" , "CMCompare" , "cmdargs-browser" , "cmdtheline" , "cmonad" , "cnc-spec-compiler" , "cndict" , "Coadjute" , "Codec-Image-DevIL" , "codec-libevent" , "codecov-haskell" , "codemonitor" , "codepad" , "cognimeta-utils" , "coinbase-exchange" -- outdated dependencies , "colada" , "collada-output" , "collada-types" , "collections" , "collections-api" , "collections-base-instances" , "coltrane" , "com" , "combinat" , "combinat-diagrams" , "combinatorial-problems" , "combinator-interactive" , "Combinatorrent" , "commodities" , "commsec" , "commsec-keyexchange" , "comonad-extras" , "comonad-random" , "compact-map" , "compact-string" , "compilation" , "complexity" , "compose-trans" , "compression" , "compstrat" , "comptrans" , "computational-algebra" , "concraft" , "concraft-hr" , "concraft-pl" , "concrete-typerep" , "concurrent-state" , "ConcurrentUtils" , "condor" , "Condor" , "condorcet" , "conductive-clock" , "conductive-hsc3" , "conduit-audio-lame" , "conduit-audio-samplerate" , "conduit-iconv" , "conduit-network-stream" , "conduit-resumablesink" , "Configger" , "configifier" , "config-select" , "conjure" , "connection-pool" , "consistent" , "const-math-ghc-plugin" , "constrained-categories" , "constructive-algebra" , "consul-haskell" , "Consumer" , "context-stack" , "continue" , "continuum" , "continuum-client" , "Contract" , "control-event" , "control-monad-attempt" , "control-monad-exception-mtl" , "control-monad-failure" , "control-monad-failure-mtl" , "Control-Monad-MultiPass" , "Control-Monad-ST2" , "contstuff-monads-tf" , "contstuff-transformers" , "convertible-ascii" , "convertible-text" , "copilot" , "copilot-c99" , "copilot-cbmc" , "copilot-core" , "copilot-language" , "copilot-libraries" , "copilot-sbv" , "COrdering" , "core" , "corebot-bliki" , "CoreErlang" , "CoreFoundation" , "core-haskell" , "Coroutine" , "coroutine-iteratee" , "CouchDB" , "couchdb-conduit" , "couchdb-enumerator" , "couch-hs" , "court" , "CPBrainfuck" , "CPL" , "cplusplus-th" , "cpsa" , "cpuperf" , "cpython" , "cqrs" , "cqrs-example" , "cqrs-postgresql" , "cqrs-sqlite3" , "cqrs-test" , "cqrs-types" , "cr" , "crack" , "Craft3e" , "craftwerk" , "craftwerk-cairo" , "craftwerk-gtk" , "crc16" , "crf-chain1" , "crf-chain1-constrained" , "crf-chain2-generic" , "crf-chain2-tiers" , "criterion-plus" , "crocodile" , "cron" , "crunghc" , "crypto-cipher-benchmarks" , "cryptsy-api" , "crystalfontz" , "cse-ghc-plugin" , "csound-catalog" , "csound-expression" , "csound-expression-opcodes" , "csound-expression-typed" , "csound-sampler" , "csp" , "cspmchecker" , "CSPM-cspm" , "CSPM-FiringRules" , "CSPM-Frontend" , "CSPM-Interpreter" , "CSPM-ToProlog" , "css" , "ctemplate" , "ctkl" , "ctpl" , "cudd" , "curry-base" , "CurryDB" , "curry-frontend" , "cursedcsv" , "curves" , "CV" , "cv-combinators" , "cypher" , "dag" , "DAG-Tournament" , "Dangerous" , "dao" , "Dao" , "dapi" , "darcs2dot" , "darcs-benchmark" , "darcs-beta" , "darcs-buildpackage" , "darcs-cabalized" , "darcsden" , "darcs-graph" , "DarcsHelpers" , "darcs-monitor" , "darcs-scripts" , "darcswatch" , "darkplaces-demo" , "data-cycle" , "data-dispersal" , "data-easy" , "data-extra" , "data-ivar" , "data-lens-ixset" , "datalog" , "data-named" , "data-nat" , "data-object-json" , "data-object-yaml" , "data-quotientref" , "data-rope" , "Data-Rope" , "data-store" , "DataTreeView" , "data-type" , "datetime" , "dbjava" , "d-bus" , "DBus" , "dbus-client" , "dbus-core" , "dclabel" , "ddc-build" , "ddc-core" , "ddc-core-eval" , "ddc-core-flow" , "ddc-core-llvm" , "ddc-core-salt" , "ddc-core-simpl" , "ddc-core-tetra" , "ddc-driver" , "ddci-core" , "ddc-source-tetra" , "ddc-tools" , "Deadpan-DDP" , "dead-simple-json" , "decepticons" , "DecisionTree" , "decoder-conduit" , "dedukti" , "deeplearning-hs" , "deepseq-bounded" , "deepseq-th" , "deepzoom" , "defargs" , "DefendTheKing" , "definitive-base" , "definitive-filesystem" , "definitive-graphics" , "definitive-parser" , "definitive-reactive" , "definitive-sound" , "deka" , "deka-tests" , "delicious" , "delta" , "delta-h" , "demarcate" , "denominate" , "depends" , "dephd" , "dequeue" , "derangement" , "derivation-trees" , "derive-gadt" , "derive-IG" , "derive-topdown" , "derive-trie" , "derp-lib" , "dewdrop" , "Dflow" , "dfsbuild" , "dgim" , "dgs" , "diagrams-builder" , "diagrams-haddock" , "diagrams-hsqml" , "diagrams-pdf" , "diagrams-pgf" , "diagrams-qrcode" , "diagrams-tikz" , "dice-entropy-conduit" , "dicom" , "dictparser" , "diffcabal" , "DifferenceLogic" , "DifferentialEvolution" , "digestive-functors-hsp" , "DimensionalHash" , "dingo-core" , "dingo-example" , "dingo-widgets" , "diophantine" , "direct-binary-files" , "directed-cubical" , "direct-fastcgi" , "direct-http" , "direct-plugins" , "DirectSound" , "dirfiles" , "discount" , "disjoint-set" , "DisTract" , "distributed-process" , "distributed-process-async" , "distributed-process-azure" , "distributed-process-client-server" , "distributed-process-execution" , "distributed-process-extras" , "distributed-process-monad-control" , "distributed-process-p2p" , "distributed-process-platform" , "distributed-process-registry" , "distributed-process-simplelocalnet" , "distributed-process-supervisor" , "distributed-process-task" , "distributed-process-tests" , "distributed-process-zookeeper" , "distributed-static" , "distribution" , "distribution-plot" , "dist-upload" , "djinn-th" , "DMuCheck" , "DnaProteinAlignment" , "dnscache" , "dnssd" , "doccheck" , "docidx" , "docker" , "dockercook" , "doc-review" , "DocTest" , "doctest-discover" , "doctest-discover-configurator" , "DOM" , "dominion" -- https://github.com/egonSchiele/dominion/issues/10 , "dow" , "download" , "download-media-content" , "DP" , "dph-examples" , "dph-lifted-base" , "dph-lifted-copy" , "dph-lifted-vseg" , "dph-par" , "dph-prim-par" , "dph-seq" , "DPM" , "drClickOn" , "DrHylo" , "DrIFT" , "DrIFT-cabalized" , "dropbox-sdk" , "dropsolve" , "DSH" , "dsh-sql" , "ds-kanren" , "dsmc" , "dsmc-tools" , "dsp" , "DSTM" , "dstring" , "dtab" , "DTC" , "dtd" , "dtd-text" , "dtd-types" , "dtw" , "duplo" , "Dust" , "Dust-crypto" , "Dust-tools" , "Dust-tools-pcap" , "dvda" , "dvdread" , "dx9base" , "dx9d3d" , "dx9d3dx" , "dynamic-object" , "dynamic-plot" , "dynamic-pp" , "DynamicTimeWarp" , "dynobud" , "DysFRP-Cairo" , "DysFRP-Craftwerk" , "easy-api" , "easyjson" , "easyplot" , "easyrender" , "Ebnf2ps" , "ecdsa" , "ecu" , "ed25519" , "edenmodules" , "edenskel" , "edentv" , "edge" , "EdisonCore" , "edit-lenses" , "editline" , "EditTimeReport" , "EEConfig" , "effective-aspects" , "effective-aspects-mzv" , "effect-monad" , "egison" , "egison-quote" , "egison-tutorial" , "ehaskell" , "ehs" , "eibd-client-simple" , "eigen" , "eithers" , "EitherT" , "ekg-bosun" , "elerea-examples" , "elerea-sdl" , "Elm" , "elm-build-lib" , "elm-compiler" , "elm-get" , "elm-init" , "elm-make" , "elm-package" , "elm-reactor" , "elm-repl" , "elm-server" , "elm-yesod" , "elocrypt" , "email" , "email-header" , "email-postmark" , "embeddock" , "embeddock-example" , "embroidery" , "emgm" , "Emping" , "empty" , "Encode" , "enumfun" , "EnumMap" , "enummapmap" , "env-parser" , "epoll" , "eprocess" , "epubname" , "Eq" , "equational-reasoning" , "erlang" , "eros-client" , "error-message" , "ersatz" , "ersatz-toysat" , "ert" , "esotericbot" , "EsounD" , "estimators" , "estreps" , "Etage" , "Etage-Graph" , "EtaMOO" , "eternal" , "Eternal10Seconds" , "Etherbunny" , "ethereum-client-haskell" , "ethereum-merkle-patricia-db" , "eurofxref" , "Euterpea" , "event-driven" , "event-monad" , "EventSocket" , "every-bit-counts" , "ewe" , "exherbo-cabal" , "exif" , "exists" , "expand" , "expat-enumerator" , "explain" , "explicit-sharing" , "explore" , "exposed-containers" , "exp-pairs" , "extcore" , "extemp" , "extended-categories" , "external-sort" , "ez-couch" , "faceted" , "factual-api" , "FailureT" , "fallingblocks" , "falling-turnip" , "fastirc" , "fast-tags" , "fault-tree" , "fay-hsx" , "fcd" , "fckeditor" , "FComp" , "fdo-trash" , "feed2lj" , "feed2twitter" , "feed-cli" , "feldspar-compiler" , "feldspar-language" , "fences" , "fenfire" , "FermatsLastMargin" , "FerryCore" , "ffeed" , "fficxx" , "ffmpeg-tutorials" , "fibon" , "fields" , "FieldTrip" , "fieldwise" , "FileManip" , "FileManipCompat" , "FileSystem" , "filesystem-conduit" , "filesystem-enumerator" , "Finance-Quote-Yahoo" , "Finance-Treasury" , "find-conduit" , "FiniteMap" , "first-class-patterns" , "firstify" , "FirstOrderTheory" , "fit" , "fitsio" , "fixed-point" , "fixed-point-vector" , "fixed-point-vector-space" , "fixed-precision" , "fixed-storable-array" , "fix-parser-simple" , "fixplate" , "fix-symbols-gitit" , "flexiwrap" , "flexiwrap-smallcheck" , "flickr" , "Flippi" , "flite" , "flo" , "floating-bits" , "flow2dot" , "flowdock" , "flowdock-api" , "flower" , "flowlocks-framework" , "flowsim" , "FModExRaw" , "FM-SBLEX" , "foldl-incremental" , "folds" , "folds-common" , "follower" , "Folly" , "foma" , "font-opengl-basic4x6" , "foo" , "forbidden-fruit" , "fordo" , "for-free" , "formal" , "format" , "format-status" , "forml" , "formlets" , "formlets-hsp" , "ForSyDe" , "forth-hll" , "Foster" , "fpco-api" , "fpnla-examples" , "FPretty" , "frag" , "franchise" , "Frank" , "free-game" , "freekick2" , "freenect" , "free-operational" , "freesect" , "freesound" , "free-theorems" , "free-theorems-counterexamples" , "free-theorems-seq" , "free-theorems-seq-webui" , "free-theorems-webui" , "FreeTypeGL" , "frp-arduino" , "fs-events" , "fsmActions" , "ftdi" , "ftp-conduit" , "ftshell" , "full-sessions" , "fullstop" , "functional-arrow" , "function-combine" , "functor-apply" , "functor-infix" , "functorm" , "funion" , "funsat" , "future" , "fuzzytime" , "fuzzy-timings" , "gact" , "gameclock" , "Ganymede" , "gc-monitoring-wai" , "gdiff-ig" , "gdiff-th" , "geek" , "geek-server" , "gemstone" , "gencheck" , "gender" , "general-prelude" , "generators" , "generic-church" , "genericserialize" , "generic-storable" , "generic-xml" , "genetics" , "GenI" , "geniconvert" , "geni-gui" , "geniserver" , "geni-util" , "GenSmsPdu" , "geodetics" , "GeoIp" , "geojson" , "geom2d" , "GeomPredicates-SSE" , "getemx" , "getflag" , "ggtsTC" , "ghc-dup" , "ghc-events-analyze" , "ghc-events-parallel" , "ghc-exactprint" , "ghci-haskeline" , "ghci-ng" , "ghclive" , "ghc-parmake" , "ghc-parser" , "ghc-pkg-autofix" , "ghc-pkg-lib" , "ghc-server" , "ghc-syb" , "GHood" , "ght" , "ginsu" , "gist" , "git-all" , "git-checklist" , "git-date" , "gitdo" , "git-gpush" , "gitlib-cmdline" , "gitlib-cross" , "gitlib-libgit2" , "gitlib-s3" , "gitlib-utils" , "git-monitor" , "git-repair" , "gitson" , "glade" , "gladexml-accessor" , "GLFW" , "GLFW-OGL" , "GLFW-task" , "glider-nlp" , "global" , "glome-hs" , "GlomeTrace" , "GlomeView" , "gloss-devil" , "glpk-hs" , "gmap" , "gmndl" , "gnome-desktop" , "gnome-keyring" , "gnomevfs" , "g-npm" , "gnuplot" , "goa" , "goatee" , "goatee-gtk" , "gofer-prelude" , "google-drive" , "google-html5-slide" , "google-mail-filters" , "googleplus" , "GoogleSB" , "google-search" , "gopherbot" , "gpah" , "GPipe" , "GPipe-Collada" , "GPipe-Examples" , "GPipe-TextureLoad" , "gps" , "gps2htmlReport" , "GPX" , "gpx-conduit" , "grapefruit-examples" , "grapefruit-frp" , "grapefruit-records" , "grapefruit-ui" , "grapefruit-ui-gtk" , "Graph500" , "graphbuilder" , "GraphHammer" , "GraphHammer-examples" , "graphics-drawingcombinators" , "graphicsFormats" , "graphics-formats-collada" , "graphicstools" , "graph-rewriting" , "graph-rewriting-cl" , "graph-rewriting-gl" , "graph-rewriting-lambdascope" , "graph-rewriting-layout" , "graph-rewriting-ski" , "graph-rewriting-strategies" , "graph-rewriting-trs" , "graph-rewriting-ww" , "graphtype" , "graph-utils" , "greencard" , "greencard-lib" , "greg-client" , "Grempa" , "grm" , "Grow" , "GrowlNotify" , "gruff" , "gruff-examples" , "gsc-weighting" , "gsl-random" , "gsl-random-fu" , "gsmenu" , "gstreamer" , "GTALib" , "gtfs" , "gtk2hs-cast-glade" , "gtk2hs-cast-gnomevfs" , "gtk2hs-cast-gtk" , "gtk2hs-cast-gtkglext" , "Gtk2hsGenerics" , "gtk2hs-rpn" , "gtk3-mac-integration" , "gtkglext" , "GtkGLTV" , "gtkimageview" , "gtk-mac-integration" , "gtkrsync" , "gtk-serialized-event" , "gtk-toy" , "guarded-rewriting" , "guess-combinator" , "GuiHaskell" , "GuiTV" , "haar" , "Hach" , "hack2-handler-happstack-server" , "hack2-handler-mongrel2-http" , "hack2-handler-warp" , "hack2-interface-wai" , "hackage2hwn" , "hackage2twitter" , "hackage-mirror" , "hackage-plot" , "hackage-proxy" , "hackager" , "hackage-server" , "hackage-sparks" , "hack-contrib" , "hack-contrib-press" , "hackernews" , "hack-frontend-happstack" , "hack-handler-epoll" , "hack-handler-evhttp" , "hack-handler-fastcgi" , "hack-handler-happstack" , "hack-handler-hyena" , "hack-handler-kibro" , "hack-handler-simpleserver" , "HackMail" , "hack-middleware-cleanpath" , "hack-middleware-clientsession" , "hack-middleware-jsonp" , "hackport" , "hactor" , "haddock-leksah" , "haddocset" , "hadoop-tools" , "haggis" , "Haggressive" , "hairy" , "hakaru" , "hakismet" , "hakyll-agda" , "hakyll-blaze-templates" , "hakyll-contrib" , "hakyll-contrib-links" , "hakyll-convert" , "hakyll-elm" , "halberd" , "HaLeX" , "halfs" , "halipeto" , "hampp" , "hamtmap" , "hamusic" , "handle-like" , "happindicator" , "happindicator3" , "happraise" , "HAppS-Data" , "HAppSHelpers" , "happs-hsp" , "happs-hsp-template" , "HAppS-IxSet" , "HAppS-Server" , "HAppS-State" , "happstack-auth" , "happstack-contrib" , "happstack-data" , "happstack-dlg" , "happstack-facebook" , "happstack-fay" , "happstack-foundation" , "happstack-heist" , "happstack-helpers" , "happstack-hsp" , "happstack-ixset" , "happstack-monad-peel" , "happstack-plugins" , "happstack-state" , "happstack-util" , "happstack-yui" , "happs-tutorial" , "HAppS-Util" , "happybara" , "happybara-webkit" , "happybara-webkit-server" , "happy-meta" , "harchive" , "hark" , "HARM" , "HarmTrace" , "HarmTrace-Base" , "harpy" , "has" , "hascal" , "hascat" , "hascat-lib" , "hascat-setup" , "hascat-system" , "Haschoo" , "HasGP" , "hash" , "hashable-generics" , "hashed-storage" , "Hashell" , "hashids" , "hasim" , "hask" , "haskanoid" , "haskarrow" , "haskdeep" , "haskeem" , "haskeline-class" , "haskell2010" , "haskell98" , "haskell-aliyun" , "haskell-awk" , "haskell-bcrypt" , "haskell-brainfuck" , "haskell-cnc" , "haskell-course-preludes" , "haskelldb-connect-hdbc" , "haskelldb-connect-hdbc-catchio-mtl" , "haskelldb-connect-hdbc-catchio-tf" , "haskelldb-connect-hdbc-catchio-transformers" , "haskelldb-connect-hdbc-lifted" , "haskelldb-dynamic" , "haskelldb-hdbc" , "haskelldb-hdbc-mysql" , "haskelldb-hdbc-odbc" , "haskelldb-hdbc-postgresql" , "haskelldb-hdbc-sqlite3" , "haskelldb-hsql" , "haskelldb-hsql-mysql" , "haskelldb-hsql-odbc" , "haskelldb-hsql-postgresql" , "haskelldb-hsql-sqlite3" , "haskelldb-wx" , "haskell-docs" , "haskell-formatter" , "haskell-ftp" , "haskell-in-space" , "haskell-names" , "haskell-neo4j-client" , "HaskellNN" , "Haskelloids" , "haskell-openflow" , "haskell-pdf-presenter" , "haskell-platform-test" , "haskell-plot" , "haskell-reflect" , "haskell-rules" , "haskellscrabble" , "haskell-src-meta-mwotton" , "HaskellTorrent" , "haskell-type-exts" , "haskell-tyrant" , "haskell-xmpp" , "haskelm" , "haskgame" , "haskheap" , "haskhol-core" , "hask-home" , "haskmon" , "haskoin" , "haskoin-crypto" , "haskoin-protocol" , "haskoin-script" , "haskoin-util" , "haskoin-wallet" , "haskoon" , "haskoon-httpspec" , "haskoon-salvia" , "haskore" , "haskore-realtime" , "haskore-supercollider" , "haskore-synthesizer" , "haskore-vintage" , "haslo" , "hasloGUI" , "hasparql-client" , "hastache-aeson" , "haste-compiler" , "haste-perch" , "has-th" , "hat" , "hatex-guide" , "HaTeX-meta" , "haverer" , "HaVSA" , "hawitter" , "Hawk" , "haxparse" , "hayland" , "Hayoo" , "hayoo-cli" , "hback" , "hbayes" , "hBDD-CMUBDD" , "hBDD-CUDD" , "hbeat" , "hblas" , "hblock" , "h-booru" , "hburg" , "HCard" , "hcheat" , "hchesslib" , "HCL" , "hcltest" , "hcron" , "hCsound" , "hcube" , "hcwiid" , "hdaemonize-buildfix" , "HDBC-mysql" , "hdbi" , "hdbi-conduit" , "hdbi-postgresql" , "hdbi-sqlite" , "hdbi-tests" , "hDFA" , "hdigest" , "hdirect" , "hdis86" , "hdiscount" , "hdm" , "hdph" , "hdph-closure" , "HDRUtils" , "hecc" , "Hedi" , "hedn" , "heist-aeson" , "helics" , "helics-wai" , "helium" , "hell" , "hellage" , "hellnet" , "helm" , "hemkay" , "hemokit" , "hen" , "henet" , "hepevt" , "HERA" , "herbalizer" , "her-lexer" , "her-lexer-parsec" , "Hermes" , "hermit" , "hermit-syb" , "herringbone" , "herringbone-embed" , "herringbone-wai" , "hesql" , "hetris" , "heukarya" , "hevolisa" , "hevolisa-dph" , "hexpat-iteratee" , "hexpat-pickle-generic" , "hexquote" , "hF2" , "hfann" , "hfd" , "hfiar" , "hfoil" -- https://github.com/ghorn/hfoil/issues/6 , "hfractal" , "hfsevents" , "hfusion" , "hgalib" , "HGamer3D" , "HGamer3D-API" , "HGamer3D-Audio" , "HGamer3D-CAudio-Binding" , "HGamer3D-CEGUI-Binding" , "HGamer3D-Enet-Binding" , "HGamer3D-Graphics3D" , "HGamer3D-GUI" , "HGamer3D-InputSystem" , "HGamer3D-Network" , "HGamer3D-Ogre-Binding" , "HGamer3D-OIS-Binding" , "HGamer3D-SDL2-Binding" , "HGamer3D-SFML-Binding" , "HGamer3D-WinEvent" , "HGamer3D-Wire" , "hg-buildpackage" , "hgen" , "hgeometric" , "hgithub" , "HGL" , "hgom" , "h-gpgme" , "HGraphStorage" , "hharp" , "HHDL" , "hiccup" , "hichi" , "hieraclus" , "hierarchical-clustering" , "hierarchical-clustering-diagrams" , "hiernotify" , "Hieroglyph" , "HiggsSet" , "higherorder" , "highWaterMark" , "himg" , "himpy" , "hinduce-classifier" , "hinduce-classifier-decisiontree" , "hinduce-examples" , "hint-server" , "hinvaders" , "hinze-streams" , "hircules" , "hirt" , "hissmetrics" , "Histogram" , "historian" , "hist-pl" , "hist-pl-fusion" , "hist-pl-lmf" , "hjs" , "HJVM" , "hlatex" , "hlbfgsb" , "hlcm" , "HLearn-algebra" , "HLearn-datastructures" , "hledger-chart" , "hledger-vty" , "hlibev" , "hlibfam" , "hlibsass" -- https://github.com/jakubfijalkowski/hsass/issues/1 , "HListPP" , "hlogger" , "HLogger" , "hly" , "HMap" , "hmark" , "hmarkup" , "hmatrix-banded" , "hmatrix-gsl-stats" , "hmatrix-quadprogpp" , "hmatrix-static" , "hmatrix-syntax" , "hmatrix-tests" , "hmeap" , "hmeap-utils" , "hmk" , "HMM" , "hmm-hmatrix" , "hMollom" , "hmp3" , "Hmpf" , "hmpfr" , "hmumps" , "HNM" , "hnn" , "hoauth" , "hob" , "hobbits" , "HODE" , "Hoed" , "hofix-mtl" , "hog" , "hogg" , "hogre" , "hogre-examples" , "hois" , "hole" , "holey-format" , "Holumbus-Distribution" , "Holumbus-MapReduce" , "Holumbus-Searchengine" , "Holumbus-Storage" , "homeomorphic" , "hommage" , "hommage-ds" , "HongoDB" , "hood" , "hoodie" , "hoodle" , "hoodle-builder" , "hoodle-core" , "hoodle-extra" , "hoodle-parser" , "hoodle-publish" , "hoodle-render" , "hoodle-types" , "hood-off" , "hoovie" , "hopencc" , "hopencl" , "hOpenPGP" , "hopfield" , "hoq" , "hosts-server" , "hotswap" , "hp2any-core" , "hp2any-graph" , "hp2any-manager" , "hpage" , "hpapi" , "hpaste" , "hpasteit" , "HPath" , "hpc-coveralls" , "hpc-tracer" , "HPDF" , "hplayground" , "hplaylist" , "HPlot" , "hpodder" , "HPong" , "hprotoc" , "hprotoc-fork" , "hps-cairo" , "hpygments" , "hpylos" , "hR" , "hranker" , "HRay" , "Hricket" , "HROOT" , "HROOT-core" , "HROOT-graf" , "HROOT-hist" , "HROOT-io" , "HROOT-math" , "hs2bf" , "hs2dot" , "Hs2lib" , "hsass" , "hsbackup" , "hsc2hs" , "hsc3-cairo" , "hsc3-data" , "hsc3-forth" , "hsc3-graphs" , "hsc3-lang" , "hsc3-lisp" , "hsc3-plot" , "hsc3-rec" , "hsc3-server" , "hsc3-unsafe" , "hscamwire" , "hs-carbon" , "hs-carbon-examples" , "hscassandra" , "hs-cdb" , "hsclock" , "hscrtmpl" , "hscurses" , "hscurses-fish-ex" , "hsdip" , "hsdns-cache" , "hs-dotnet" , "Hsed" , "hsexif" , "hsfacter" , "HSFFIG" , "hs-ffmpeg" , "hs-fltk" , "hs-gchart" , "hs-gen-iface" , "hs-GeoIP" , "HSGEP" , "hsgnutls" , "hsgnutls-yj" , "hsgsom" , "HsHaruPDF" , "HSHHelpers" , "HsHyperEstraier" , "hsignal" , "hSimpleDB" , "hs-java" , "hs-json-rpc" , "HsJudy" , "hskeleton" , "hslackbuilder" , "hslibsvm" , "hslogger4j" , "hs-logo" , "hslogstash" , "hsmagick" , "HSmarty" , "hs-mesos" , "hsmisc" , "Hsmtlib" , "hsmtpclient" , "hsndfile-storablevector" , "hsnock" , "hs-nombre-generator" , "hsns" , "hsntp" , "hsoptions" , "HSoundFile" , "hsparql" , "HsParrot" , "hsp-cgi" , "hspear" , "hspec-experimental" , "hspec-shouldbe" , "HsPerl5" , "hs-pgms" , "hs-pkpass" , "hspread" , "hspresent" , "hsprocess" , "hsql-mysql" , "hsqml-demo-morris" , "hsqml-demo-samples" , "hsqml-morris" , "hsSqlite3" , "HsSVN" , "hstatistics" , "hstats" , "hstest" , "hstidy" , "hstorchat" , "hstradeking" , "HStringTemplateHelpers" , "hs-twitter" , "hs-twitterarchiver" , "hstyle" , "hstzaar" , "hsubconvert" , "hs-vcard" , "HSvm" , "hswip" , "hsx" , "hsXenCtrl" , "hsx-jmacro" , "hsx-xhtml" , "hsyscall" , "hszephyr" , "HTab" , "hTalos" , "hTensor" , "HTicTacToe" , "html2hamlet" , "html-email-validate" , "htoml" , "htsn-import" , "http-client-request-modifiers" , "http-conduit-browser" , "http-conduit-downloader" , "http-encodings" , "http-enumerator" , "http-monad" , "http-proxy" , "https-everywhere-rules" , "https-everywhere-rules-raw" , "http-shed" , "HTTP-Simple" , "httpspec" , "http-test" , "htune" , "htzaar" , "hubris" , "hugs2yc" , "hulk" , "hums" , "HUnit-Diff" , "hunit-gui" , "HUnit-Plus" , "hunit-rematch" , "hunt-searchengine" , "hurdle" , "husk-scheme" , "husk-scheme-libs" , "husky" , "hutton" , "huzzy" , "hVOIDP" , "hws" , "HXMPP" , "hxmppc" , "hxournal" , "HXQ" , "hxt-binary" , "hxt-filter" , "hxthelper" , "hxweb" , "hyakko" -- https://github.com/sourrust/hyakko/issues/2 , "hybrid" , "hybrid-vectors" , "hydra-hs" , "hydra-print" , "hydrogen-cli-args" , "hydrogen-data" , "hydrogen-parsing" , "hydrogen-prelude" , "hydrogen-prelude-parsec" , "hydrogen-util" , "hyena" , "hylolib" , "hylotab" , "hyloutils" , "hyperdrive" , "hyperloglog" , "hyperpublic" , "hypher" , "i18n" , "iban" , "iCalendar" , "iconv" , "ideas" , "ideas-math" , "idiii" , "idna2008" , "IDynamic" , "ieee-utils" , "iException" , "IFS" , "ig" , "ige-mac-integration" , "igraph" , "ihaskell-aeson" , "ihaskell-basic" , "ihaskell-blaze" , "ihaskell-charts" , "ihaskell-display" , "ihaskell-hatex" , "ihaskell" -- https://github.com/gibiansky/IHaskell/issues/495 , "ihaskell-juicypixels" , "ihaskell-magic" , "ihaskell-parsec" , "ihaskell-plot" , "ihaskell-rlangqq" , "ihttp" , "illuminate" , "imagepaste" , "imbib" , "imgurder" , "imm" , "imparse" , "ImperativeHaskell" , "implicit" , "improve" , "INblobs" , "inch" , "include-file" , "incremental-computing" , "incremental-sat-solver" , "increments" , "index-core" , "indices" , "infer-upstream" , "infinity" , "infix" , "InfixApplicative" , "inflections" , "inflist" , "informative" , "instant-generics" , "instant-zipper" , "integer-pure" , "intel-aes" , "interleavableGen" , "interleavableIO" , "internetmarke" , "interpolatedstring-qq" , "interpolatedstring-qq-mwotton" , "intricacy" , "intset" , "IOR" , "io-reactive" , "IORefCAS" , "iotransaction" , "ipatch" , "ipc" , "ipopt-hs" , "iptables-helpers" , "iptadmin" , "Irc" , "ircbot" , "ircbouncer" , "irc-client" , "ireal" , "IrrHaskell" , "isevaluated" , "ismtp" , "iteratee" , "iteratee-compress" , "iteratee-parsec" , "iteratee-stm" , "iterIO" , "iterio-server" , "iter-stats" , "ivar-simple" , "ivor" , "ivory" , "ivory-opts" , "ivory-quickcheck" , "ivory-stdlib" , "ivy-web" , "ixdopp" , "ixset-typed" , "iyql" , "j2hs" , "jack-bindings" , "jackminimix" , "JackMiniMix" , "jalla" , "jammittools" , "jarfind" , "java-bridge" , "java-bridge-extras" , "java-reflect" , "javasf" , "Javasf" , "javav" , "Javav" , "jespresso" , "jobqueue" , "join" , "joinlist" , "jonathanscard" , "jort" , "jose" , "jose-jwt" -- https://github.com/tekul/jose-jwt/issues/6 , "jsc" , "JsContracts" , "js-good-parts" , "jsmw" , "json2" , "json2-hdbc" , "json-b" , "JSONb" , "JSON-Combinator" , "JSON-Combinator-Examples" , "json-enumerator" , "JsonGrammar" , "json-qq" , "jsonresume" , "json-rpc" , "json-tools" , "jspath" , "judy" , "JuicyPixels-repa" , "JunkDB-driver-gdbm" , "JYU-Utils" , "kangaroo" , "kansas-lava" , "kansas-lava-cores" , "kansas-lava-papilio" , "kansas-lava-shake" , "katt" , "keera-hails-mvc-model-lightmodel" , "keera-hails-reactive-gtk" , "keiretsu" , "Ketchup" , "kevin" , "keyring" , "keystore" , "kibro" , "kicad-data" , "kickass-torrents-dump-parser" , "KiCS" , "KiCS-debugger" , "KiCS-prophecy" , "kif-parser" , "kit" , "kmeans-par" , "koellner-phonetic" , "Konf" , "korfu" , "kqueue" , "kure-your-boilerplate" , "KyotoCabinet" , "labeled-graph" , "labyrinth" , "labyrinth-server" , "laika" , "lambda2js" , "lambdaBase" , "lambdabot" , "lambdabot-haskell-plugins" , "lambdabot-novelty-plugins" , "lambdabot-utils" , "lambda-bridge" , "LambdaCalculator" , "lambdacat" , "lambdacms-core" , "lambdacms-media" , "lambdacube" , "lambdacube-bullet" , "lambdacube-engine" , "lambdacube-examples" , "lambdacube-gl" , "lambdacube-samples" , "lambda-devs" , "lambdaFeed" , "LambdaINet" , "lambdaLit" , "LambdaPrettyQuote" , "LambdaShell" , "lambda-toolbox" , "lambdatwit" , "lambdiff" , "lame-tester" , "language-bash" , "language-boogie" , "language-c-comments" , "language-c-inline" , "language-eiffel" , "language-go" , "language-java-classfile" , "language-mixal" , "language-objc" , "language-python-colour" , "language-sh" , "language-spelling" , "language-sqlite" , "language-thrift" , "Lastik" , "lat" , "latest-npm-version" , "Lattices" , "layers" , "layout" , "layout-bootstrap" , "lazyarray" , "lazysplines" , "l-bfgs-b" , "lcs" , "ldap-client" , "ldif" , "leaf" , "leaky" , "learn-physics" , "learn-physics-examples" , "leksah" , "leksah-server" , "lens-action" , "Level0" , "leveldb-haskell" , "leveldb-haskell-fork" , "levmar" , "levmar-chart" , "lgtk" , "lha" , "lhae" , "lhe" , "LibClang" , "libcspm" , "libexpect" , "libGenI" , "libhbb" , "libjenkins" , "libltdl" , "liboleg" , "libpafe" , "libpq" , "libssh2-conduit" , "libsystemd-daemon" , "libvirt-hs" , "libxml" , "libxslt" , "lifter" , "lighttpd-conf" , "lighttpd-conf-qq" , "lilypond" , "Limit" , "limp" , "limp-cbc" , "lin-alg" , "linear-algebra-cblas" , "linear-maps" , "linearscan-hoopl" , "linearscan" -- https://github.com/jwiegley/linearscan/issues/1 , "LinearSplit" , "LinkChecker" , "linkchk" , "linkcore" , "linux-blkid" , "linux-kmod" , "linux-perf" , "linux-ptrace" , "lio-eci11" , "lio-simple" , "liquid-fixpoint" -- https://github.com/ucsd-progsys/liquid-fixpoint/issues/66 , "liquidhaskell" , "listlike-instances" , "list-t-html-parser" , "ListTree" , "literals" , "live-sequencer" , "ll-picosat" , "llsd" , "llvm-ffi" , "llvm-general-quote" , "llvm-ht" , "local-search" , "loch" , "lock-file" , "log2json" , "log-effect" , "logic-classes" , "LogicGrowsOnTrees" , "LogicGrowsOnTrees-MPI" , "LogicGrowsOnTrees-network" , "LogicGrowsOnTrees-processes" , "lojban" , "lojbanParser" , "lojbanXiragan" , "lojysamban" , "loli" , "loop-effin" , "loopy" , "lord" , "loris" , "lostcities" , "lscabal" , "L-seed" , "LslPlus" , "ls-usb" , "lsystem" , "luachunk" , "lucienne" , "Lucu" , "lui" , "luka" , "luthor" , "lvish" , "lvmlib" , "lye" , "maam" , "machinecell" , "mage" , "magic" , "MagicHaskeller" , "magma" , "mahoro" , "majordomo" , "majority" , "manatee" , "manatee-anything" , "manatee-browser" , "manatee-core" , "manatee-curl" , "manatee-editor" , "manatee-filemanager" , "manatee-imageviewer" , "manatee-mplayer" , "manatee-pdfviewer" , "manatee-processmanager" , "manatee-reader" , "manatee-template" , "manatee-terminal" , "manatee-welcome" , "mandulia" , "mangopay" , "manifolds" , "marionetta" , "markBroken" , "markdown2svg" , "markdown-kate" , "markdown-pap" , "markov-processes" , "markup-preview" , "marmalade-upload" , "marquise" , "marxup" , "masakazu-bot" , "matchers" , "mathblog" , "mathgenealogy" , "mathlink" , "matlab" , "matsuri" , "maude" , "maxent" , "maxsharing" , "maybench" , "MaybeT-monads-tf" , "MaybeT-transformers" , "MazesOfMonad" , "mbox-tools" , "MC-Fold-DP" , "mcmc-samplers" , "mdcat" -- https://github.com/dorafmon/mdcat/issues/2 , "Measure" , "mecab" , "mediawiki" , "mediawiki2latex" , "mega-sdist" , "melody" , "memory" , "memo-sqlite" , "MetaObject" , "meta-par-accelerate" , "metaplug" , "metric" , "metrics" , "Metrics" , "metronome" , "MFlow" , "Mhailist" , "MHask" , "mida" , "midisurface" , "mighttpd" , "miku" , "milena" , "mime-directory" , "mime-string" , "minesweeper" , "MiniAgda" , "miniball" , "miniforth" , "minimung" , "minioperational" , "miniplex" , "minirotate" , "ministg" , "mirror-tweet" , "misfortune" , "MissingPy" , "missing-py2" , "mix-arrows" , "mkbndl" , "mlist" , "ml-w" , "mmtl" , "mmtl-base" , "moan" , "modelicaparser" , "modsplit" , "modular-prelude" , "modular-prelude-classy" , "module-management" , "mohws" , "monad-abort-fd" , "monadacme" , "monad-atom" , "monad-atom-simple" , "monad-bool" , "MonadCatchIO-mtl-foreign" , "MonadCatchIO-transformers-foreign" , "monad-exception" , "monadiccp" , "monadiccp-gecode" , "monad-interleave" , "MonadLab" , "monad-levels" , "monad-lrs" , "monad-memo" , "monad-mersenne-random" , "monad-peel" , "monad-ran" , "MonadRandomLazy" , "monad-stlike-io" , "monad-stlike-stm" , "monad-tx" , "monad-unify" , "monarch" , "Monaris" , "Monatron" , "Monatron-IO" , "mongodb-queue" , "mongrel2-handler" , "Monocle" , "mono-foldable" , "monoid-owns" , "monoidplus" , "monoids" , "monomorphic" , "monte-carlo" , "moo" , "morfette" , "morfeusz" , "mosaico-lib" , "mount" , "mp3decoder" , "mpdmate" , "mpppc" , "mpretty" , "mprover" , "mps" , "mpvguihs" , "mqtt-hs" , "msgpack-idl" , "mstate" , "mtgoxapi" , "mtl-tf" , "mtlx" , "mtp" , "mudbath" , "mueval" , "multifocal" , "multipass" , "multiplate-simplified" , "multirec-alt-deriver" , "multirec-binary" , "multisetrewrite" , "murder" , "murmurhash3" , "musicbrainz-email" , "music-graphics" , "music-parts" , "music-pitch" , "music-preludes" , "music-score" , "music-sibelius" , "music-suite" , "music-util" , "musicxml" , "mustache2hs" , "mutable-iter" , "mvclient" , "mvc-updates" , "mwc-random-monad" , "mysnapsession" , "mysnapsession-example" , "mysql-simple-quasi" , "mysql-simple-typed" , "myTestlll" , "mzv" , "named-lock" , "nanoAgda" , "nano-cryptr" , "nanocurses" , "nano-hmac" , "nano-md5" , "nanomsg-haskell" , "narc" , "nats-queue" , "natural-number" , "neat" , "needle" , "nemesis-titan" , "nerf" , "nero" , "nero-wai" , "nero-warp" , "netcore" , "netlines" , "NetSNMP" , "netspec" , "nettle" , "nettle-frp" , "nettle-netkit" , "nettle-openflow" , "network-address" , "network-anonymous-i2p" , "network-builder" , "network-bytestring" , "network-connection" , "network-house" , "network-minihttp" , "Network-NineP" , "network-rpca" , "network-server" , "network-service" , "network-simple-tls" , "network-topic-models" , "network-transport-amqp" , "network-transport-zeromq" , "network-websocket" , "newports" , "newsynth" , "newt" , "newtype-th" , "NGrams" , "nibblestring" , "nikepub" , "Ninjas" , "nitro" , "nixos-types" , "nkjp" , "nm" , "nme" , "nntp" , "noise" , "Nomyx" , "Nomyx-Core" , "Nomyx-Language" , "Nomyx-Rules" , "Nomyx-Web" , "nondeterminism" , "NonEmptyList" , "noodle" , "NoSlow" , "not-gloss-examples" , "notmuch-haskell" , "notmuch-web" , "np-linear" , "nptools" , "nthable" , "null-canvas" , "NumberSieves" , "numerals" , "numerals-base" , "numeric-qq" , "nums" , "Nussinov78" , "NXT" , "NXTDSL" , "nyan" , "nymphaea" , "oberon0" , "obj" , "Object" , "ObjectIO" , "octopus" , "oculus" , "ofx" , "OGL" , "ohloh-hs" , "oi" , "ois-input-manager" , "omaketex" , "omega" , "Omega" , "omnicodec" , "on-a-horse" , "one-liner" , "oneormore" , "onu-course" , "OpenAFP" , "OpenAFP-Utils" , "OpenCL" , "OpenCLRaw" , "opencv-raw" , "openexchangerates" , "OpenGLCheck" , "opengles" , "openid" , "open-pandoc" , "openpgp-Crypto" , "openpgp-crypto-api" , "OpenSCAD" , "openssh-github-keys" , "opentheory-char" , "open-union" , "OpenVG" , "OpenVGRaw" , "open-witness" , "Operads" , "opml-conduit" , "optimusprime" , "orchid" , "orchid-demo" , "order-maintenance" , "orgmode-parse" , "origami" , "OSM" , "osm-download" , "ot" , "package-vt" , "packedstring" , "PageIO" , "panda" , "PandocAgda" , "pandoc-csv2table" -- https://github.com/baig/pandoc-csv2table/issues/8 , "pandoc-unlit" , "papillon" , "pappy" , "paragon" , "Paraiso" , "parallel-tasks" , "parameterized-data" , "parco" , "parco-attoparsec" , "parconc-examples" , "parco-parsec" , "Parry" , "parsec2" , "parse-help" , "parsek" , "parsely" , "parser-helper" , "parsestar" , "partial-lens" , "partly" , "passage" , "pastis" , "pasty" , "Pathfinder" , "pathfindingcore" , "patterns" , "paypal-api" , "pb" , "PCLT" , "PCLT-DB" , "pdynload" , "peakachu" , "pec" , "peg" , "penny" , "penny-bin" , "penny-lib" , "peparser" , "perdure" , "PerfectHash" , "perm" , "permute" , "PermuteEffects" , "persistent-hssqlppp" , "persistent-map" , "persistent-protobuf" , "persona" , "persona-idp" , "pesca" , "peyotls" , "pez" , "pgsql-simple" , "pgstream" , "phasechange" , "phone-push" , "phooey" , "photoname" , "phraskell" , "phybin" , "pianola" , "pi-calculus" , "picologic" , "piet" , "piki" , "Pipe" , "pipes-cereal-plus" , "pipes-conduit" , "pipes-network-tls" , "pipes-p2p-examples" , "pisigma" , "pit" , "pkggraph" , "planar-graph" , "plat" , "plivo" , "PlslTools" , "plugins" , "plugins-auto" , "plugins-multistage" , "plumbers" , "png-file" , "pngload" , "pngload-fixed" , "pocket-dns" , "pointless-haskell" , "pointless-lenses" , "pointless-rewrite" , "polh-lexicon" , "polyseq" , "polytypeable" , "polytypeable-utils" , "pontarius-mediaserver" , "pontarius-xmpp" , "pontarius-xpmn" , "pool" , "pool-conduit" , "popenhs" , "poppler" , "porte" , "porter" , "ports" , "positive" , "posix-acl" , "posix-waitpid" , "PostgreSQL" , "postgresql-orm" , "postgresql-simple-typed" , "postgresql-typed" , "postgrest" , "postmaster" , "powermate" , "powerpc" , "pqc" , "pqueue" , "pqueue-mtl" , "practice-room" , "precis" , "prefork" , "pregame" , "prelude-generalize" , "prelude-plus" , "preprocess-haskell" , "press" , "primula-board" , "primula-bot" , "printf-mauke" , "Printf-TH" , "PriorityChansConverger" , "priority-queue" , "ProbabilityMonads" , "proc" , "process-iterio" , "process-leksah" , "process-listlike" , "process-progress" , "process-qq" , "procrastinating-structure" , "procrastinating-variable" , "procstat" , "prof2dot" , "profunctor-extras" , "progress" , "progressbar" , "progression" , "progressive" , "proj4-hs-bindings" , "prolog" , "prolog-graph" , "prolog-graph-lib" , "propane" , "Proper" , "property-list" , "proplang" , "protobuf-native" , "protocol-buffers" , "protocol-buffers-descriptor" , "protocol-buffers-descriptor-fork" , "protocol-buffers-fork" , "prove-everywhere-server" , "proxy-kindness" , "pseudo-boolean" , "pub" , "publicsuffixlistcreate" , "pubnub" , "pubsub" , "puffytools" , "Pugs" , "pugs-compat" , "pugs-DrIFT" , "pugs-hsregex" , "pugs-HsSyck" , "punkt" , "Pup-Events" , "Pup-Events-Demo" , "puppetresources" , "pushme" , "push-notify" , "push-notify-ccs" , "push-notify-general" , "putlenses" , "puzzle-draw" , "puzzle-draw-cmdline" , "pvd" , "python-pickle" , "qd" , "qd-vec" , "qhull-simple" , "QIO" , "quantum-arrow" , "qudb" , "querystring-pickle" , "queuelike" , "QuickAnnotate" , "QuickCheck-GenT" , "quickcheck-poly" , "quickcheck-regex" , "quickcheck-relaxng" , "quickcheck-rematch" , "quickcheck-webdriver" , "quickpull" , "quickset" , "Quickson" , "quicktest" , "quoridor-hs" , "rabocsv2qif" , "rad" , "radium" , "radium-formula-parser" , "rail-compiler-editor" , "rainbow-tests" , "Raincat" , "rakhana" , "ralist" , "rallod" , "random-access-list" , "RandomDotOrg" , "random-eff" , "random-effin" , "random-hypergeometric" , "random-stream" , "rand-vars" , "range" , "rangemin" , "range-space" , "rank1dynamic" , "Ranka" , "raven-haskell" , "raven-haskell-scotty" , "rbr" , "rdf4h" , "rdioh" , "react-haskell" , "reaction-logic" , "reactive" , "reactive-bacon" , "reactive-balsa" , "reactive-banana-sdl" , "reactive-banana-threepenny" , "reactive-fieldtrip" , "reactive-glut" , "reactive-thread" , "reactor" , "really-simple-xml-parser" , "reasonable-lens" , "record-aeson" , "record-gl" , "record-preprocessor" , "records" , "records-th" , "record-syntax" , "recursion-schemes" , "redHandlers" , "ref" , "Ref" , "Referees" , "refh" , "reflection-extras" , "regex-deriv" , "regex-dfa" , "regex-genex" , "regex-parsec" , "regex-pderiv" , "regexp-tries" , "regexqq" , "regex-tdfa-text" , "regex-tdfa-utf8" , "regex-tre" , "regex-xmlschema" , "regional-pointers" , "regions" , "regions-monadsfd" , "regions-monadstf" , "regions-mtl" , "regular-extras" , "regular-web" , "reheat" , "reified-records" , "reify" , "relational-postgresql8" , "relational-query" , "relational-query-HDBC" , "relational-record" , "relational-record-examples" , "relational-schemas" , "relative-date" , "remote" , "remote-debugger" , "remotion" , "reorderable" , "repa-array" , "repa-bytestring" , "repa-flow" , "repa-plugin" , "repa-series" , "repa-v4l2" , "repl" , "RepLib" , "repo-based-blog" , "repr" , "representable-functors" , "representable-profunctors" , "representable-tries" , "resource-embed" , "resource-simple" , "respond" , "restful-snap" , "RESTng" , "restricted-workers" , "restyle" , "resumable-exceptions" , "rethinkdb" , "rethinkdb-client-driver" , "rethinkdb-model" , "rethinkdb-wereHamster" , "ReviewBoard" , "rewrite" , "rewriting" , "rezoom" , "rfc3339" , "riak" , "riak-protobuf" , "riot" , "ripple" , "ripple-federation" , "risc386" , "rivers" , "RJson" , "rmonad" , "RMP" , "RNAdesign" , "RNAdraw" , "RNAFold" , "RNAFoldProgs" , "RNAwolf" , "robot" , "roguestar" , "roguestar-engine" , "roguestar-gl" , "roguestar-glut" , "RollingDirectory" , "rope" , "rosa" , "roshask" , "rosso" , "rotating-log" , "rounding" , "roundtrip" , "roundtrip-string" , "roundtrip-xml" , "route-generator" , "route-planning" , "rowrecord" , "rpc" , "rpc-framework" , "rpm" , "rsagl" , "rsagl-frp" , "rsagl-math" , "rss2irc" , "rubberband" , "ruff" , "ruler-core" , "rungekutta" , "RxHaskell" , "safe-freeze" , "safe-globals" , "safeint" , "safe-lazy-io" , "safe-plugins" , "safer-file-handles" , "safer-file-handles-bytestring" , "safer-file-handles-text" , "sai-shape-syb" , "Salsa" , "salvia" , "salvia-demo" , "salvia-extras" , "salvia-protocol" , "salvia-sessions" , "salvia-websocket" , "samtools-iteratee" , "sasl" , "sat" , "satchmo" , "satchmo-backends" , "satchmo-examples" , "satchmo-funsat" , "satchmo-minisat" , "satchmo-toysat" , "sat-micro-hs" , "SBench" , "scaleimage" , "scan-vector-machine" , "scat" , "scenegraph" , "schedevr" , "scholdoc" , "scholdoc-citeproc" , "scion" , "scion-browser" , "scope" , "scope-cairo" , "scotty-blaze" , "scotty-fay" , "scrabble-bot" , "ScratchFs" , "scrobble" , "scroll" , "scrz" , "Scurry" , "scyther-proof" , "SDL" , "sdl2-image" , "SDL2-ttf" , "SDL-gfx" , "SDL-image" , "SDL-mixer" , "SDL-mpeg" , "SDL-ttf" , "seacat" , "search" , "secdh" , "second-transfer" , "secret-santa" , "secret-sharing" , "secrm" , "sednaDBXML" , "selectors" , "selenium" , "selenium-server" , "selinux" , "Semantique" , "semigroups-actions" , "semi-iso" , "semiring" , "sensenet" , "sentry" , "senza" , "seqaid" , "SeqAlign" , "seqloc-datafiles" , "sequent-core" , "sequor" , "serf" , "servant-pandoc" , "servant-pool" , "servant-postgresql" , "servant-scotty" , "serversession-backend-persistent" , "serversession-backend-redis" , "serversession-frontend-wai" , "servius" , "ses-html" , "ses-html-snaplet" , "SessionLogger" , "sessions" , "sexp" , "sexpr" , "sext" , "SFML" , "SFML-control" , "SFont" , "SG" , "SGdemo" , "sgrep" , "shady-gen" , "shady-graphics" , "shake-extras" , "shaker" , "shakespeare-css" , "shakespeare-i18n" , "shapely-data" , "shared-buffer" , "she" , "Shellac" , "Shellac-compatline" , "Shellac-editline" , "Shellac-haskeline" , "Shellac-readline" , "shellish" , "shell-monad" , "shell-pipe" , "shelly-extra" , "shivers-cfg" , "showdown" , "shpider" , "sifflet" , "sifflet-lib" , "signals" , "simd" , "simgi" , "simple" , "simple-bluetooth" , "simple-css" , "simple-c-value" , "simple-firewire" , "simple-form" , "SimpleGL" , "SimpleH" , "simpleirc" , "simpleirc-lens" , "SimpleLog" , "simple-log-syslog" , "simplenote" , "simple-pascal" , "simple-postgresql-orm" , "simpleprelude" , "simple-session" , "simple-sessions" , "simplessh" , "simple-templates" , "simple-vec3" , "simseq" , "sindre" , "sirkel" , "sitemap" , "sized" , "sized-types" , "sized-vector" , "skype4hs" , "slack" , "slidemews" , "sloth" , "smallarray" , "smallpt-hs" , "smallstring" , "smartcheck" , "smartGroup" , "smartword" , "sme" , "Smooth" , "smt-lib" , "smtlib2" , "smtp2mta" , "snake-game" , "snap-accept" , "snap-app" , "snap-elm" , "snap-extras" , "snaplet-actionlog" , "snaplet-auth-acid" , "snaplet-css-min" , "snaplet-environments" , "snaplet-haxl" , "snaplet-hdbc" , "snaplet-i18n" , "snaplet-mongoDB" , "snaplet-mongodb-minimalistic" , "snaplet-mysql-simple" , "snaplet-oauth" , "snaplet-purescript" , "snaplet-redson" , "snaplet-rest" , "snaplet-riak" , "snaplet-sedna" , "snaplet-ses-html" , "snaplet-sqlite-simple" , "snaplet-tasks" , "snaplet-typed-sessions" , "snaplet-wordpress" , "snap-predicates" , "snappy-iteratee" , "snap-testing" , "snap-utils" , "sndfile-enumerators" , "SNet" , "snm" , "snow-white" , "Snusmumrik" , "soap" , "soap-openssl" , "soap-tls" , "SoccerFun" , "SoccerFunGL" , "sock2stream" , "socket" , "socketio" , "sonic-visualiser" , "SoOSiM" , "sorted" , "sound-collage" , "source-code-server" , "sousit" , "soxlib" , "soyuz" , "SpaceInvaders" , "SpacePrivateers" , "sparse" , "sparsebit" , "sparsecheck" , "spata" , "special-functors" , "specialize-th" , "speculation-transformers" , "sphero" , "sphinx-cli" , "spice" , "spike" , "splaytree" , "splines" , "split-record" , "splitter" , "splot" , "Spock-auth" , "spoonutil" , "spoty" , "Sprig" , "sqlite-simple-typed" , "sql-simple" , "sql-simple-mysql" , "sql-simple-pool" , "sql-simple-postgresql" , "sql-simple-sqlite" , "sql-words" , "srcinst" , "sscgi" , "ssh" , "sssp" , "sstable" , "stackage-curator" , "stack-prism" , "starrover2" , "stateful-mtl" , "statgrab" , "statistics-dirichlet" , "statistics-fusion" , "stb-image" , "stb-truetype" , "step-function" , "stepwise" , "stm-chunked-queues" , "stmcontrol" , "stm-firehose" , "stm-io-hooks" , "Stomp" , "storable-static-array" , "storablevector" , "storablevector-carray" , "storablevector-streamfusion" , "Strafunski-Sdf2Haskell" , "StrappedTemplates" , "streamed" , "stream-fusion" , "streams" , "StrictBench" , "strict-concurrency" , "string" , "stringlike" , "stripe-haskell" , "strive" , "structural-induction" , "structured-mongoDB" , "structures" , "stunts" , "suitable" , "sunlight" , "sunroof-compiler" , "sunroof-examples" , "sunroof-server" , "supercollider-midi" , "superdoc" , "supero" , "supervisor" , "svg2q" , "SVG2Q" , "svm-simple" , "svndump" , "swapper" , "swearjure" , "swf" , "swift-lda" , "sws" , "syb-extras" , "sylvia" , "sym-plot" , "sync" , "synchronous-channels" , "syncthing-hs" , "syntax" , "syntax-attoparsec" , "syntax-example" , "syntax-example-json" , "SyntaxMacros" , "syntax-pretty" , "syntax-printer" , "syntax-trees" , "syntax-trees-fork-bairyn" , "synthesizer" , "synthesizer-alsa" , "synthesizer-core" , "synthesizer-dimensional" , "synthesizer-midi" , "Sysmon" , "system-canonicalpath" , "system-lifted" , "system-random-effect" , "ta" , "Tables" , "tablestorage" , "tabloid" , "tagged-exception-core" , "tagged-list" , "tagged-th" , "taggy" , "taggy-lens" , "tagsoup-ht" , "tagsoup-parsec" , "takahashi" , "Takusen" , "takusen-oracle" , "tamarin-prover" , "tamarin-prover-term" , "tamarin-prover-theory" , "tamarin-prover-utils" , "tamper" , "target" , "task" , "tasty-integrate" , "TBC" , "tbox" , "tccli" , "tcp" , "tdd-util" , "TeaHS" , "teams" , "template-default" , "template-haskell-util" , "template-hsml" , "templatepg" , "tempodb" , "temporal-csound" , "tempus" , "tensor" , "termbox-bindings" , "term-rewriting" , "terrahs" , "tersmu" , "test-framework-doctest" , "test-framework-quickcheck" , "testloop" , "testpattern" , "testPkg" , "testrunner" , "tetris" , "tex2txt" , "texrunner" , "text-json-qq" , "text-ldap" , "textmatetags" , "text-normal" , "textPlot" , "text-register-machine" , "texts" , "text-xml-generic" , "text-xml-qq" , "tfp-th" , "th-context" , "themoviedb" , "themplate" , "Theora" , "theoremquest-client" , "thih" , "thimk" , "Thingie" , "th-instances" , "th-kinds" , "th-printf" , "thrift" , "Thrift" , "throttle" , "thyme" , "tianbar" , "tic-tac-toe" , "TicTacToe" , "tie-knot" , "tiger" , "tighttp" , "timberc" , "timecalc" , "time-extras" , "time-http" , "timeout" , "timeout-control" , "timeparsers" , "time-patterns" , "TimePiece" , "timeplot" , "time-recurrence" , "timerep" , "time-series" , "timestamper" , "timestamp-subprocess-lines" , "time-w3c" , "TinyLaunchbury" , "TinyURL" , "Titim" , "tkhs" , "tkyprof" , "tls-extra" , "todos" , "to-haskell" , "toilet" , "toktok" , "tokyocabinet-haskell" , "toml" , "Top" , "topkata" , "torch" , "to-string-class" , "to-string-instances" , "Tournament" , "toysolver" , "tpdb" , "tracker" , "trajectory" , "transactional-events" , "transformers-convert" , "transformers-runnable" , "translate" , "traypoweroff" , "treemap-html-tools" , "treeviz" , "t-regex" , "tremulous-query" , "TrendGraph" , "trhsx" , "triangulation" , "TrieMap" , "trimpolya" , "true-name" , "tsession" , "tsession-happstack" , "tskiplist" , "tsp-viz" , "tuntap" , "tup-functor" , "tuple-gen" , "tupleinstances" , "tuple-lenses" , "tuple-morph" , "twentefp-rosetree" , "twhs" , "twidge" , "twilight-stm" , "twilio" , "twill" , "twiml" , "twine" , "twisty" , "twitch" , "twitter" , "twitter-conduit" , "twitter-enumerator" , "twitter-feed" , "twitter-types" , "twitter-types-lens" , "tx" , "TYB" , "typalyze" , "typeable-th" , "type-cereal" , "TypeClass" , "type-digits" , "typedquery" , "type-equality-check" , "typehash" , "TypeIlluminator" , "type-int" , "type-level" , "type-level-bst" , "type-level-sets" , "typelevel-tensor" , "type-list" , "TypeNat" , "type-natural" , "type-ord" , "type-ord-spine-cereal" , "typeparams" , "type-prelude" , "typescript-docs" , "type-settheory" , "type-spine" , "type-structure" , "type-sub-th" , "typography-geometry" , "uacpid" , "uAgda" , "uberlast" , "uconv" , "udbus" , "udbus-model" , "udev" , "uhttpc" , "ui-command" , "UISF" , "UMM" , "unamb-custom" , "unbound" , "unbounded-delays-units" , "unboxed-containers" , "unicode-names" , "unicode-normalization" , "unicode-properties" , "unicoder" , "union-map" , "uniqueid" , "unique-logic-tf" , "units" , "units-defs" , "unittyped" , "universe-th" , "unix-process-conduit" , "unlit" , "unordered-containers-rematch" , "unpack-funcs" , "unsafely" , "unscramble" , "up" , "uploadcare" , "upskirt" , "ureader" , "urembed" , "uri-bytestring" , "uri-conduit" , "uri-enumerator" , "uri-enumerator-file" , "urlcheck" , "urldecode" , "UrlDisp" , "urldisp-happstack" , "urlencoded" , "url-generic" , "URLT" , "urxml" , "usb-enumerator" , "usb-iteratee" , "usb-safe" , "uuagc-diagrams" , "uu-tc" , "uvector" , "uvector-algorithms" , "v4l2" , "v4l2-examples" , "vacuum" , "vacuum-cairo" , "vacuum-graphviz" , "vacuum-opengl" , "vacuum-ubigraph" , "validate" , "vampire" , "var" , "vaultaire-common" , "vcard" , "Vec-Boolean" , "Vec-OpenGLRaw" , "vector-bytestring" , "vector-clock" , "vector-conduit" , "vector-fftw" , "vector-functorlazy" , "vector-instances-collections" , "vector-random" , "vector-read-instances" , "vector-space-opengl" , "vector-static" , "Vec-Transform" , "verilog" , "vigilance" , "vintage-basic" , "vinyl" , "vinyl-gl" , "vinyl-json" , "vinyl-utils" , "virthualenv" , "vision" , "visual-graphrewrite" , "visual-prof" , "vk-aws-route53" , "VKHS" , "vorbiscomment" , "vowpal-utils" , "voyeur" , "vtegtk3" , "vty-examples" , "vty-menu" , "vty-ui-extras" , "wai-cors" , "wai-eventsource" , "wai-graceful" , "wai-handler-devel" , "wai-handler-snap" , "wai-handler-webkit" , "wai-hastache" , "wai-lite" , "wai-logger-prefork" , "wai-middleware-cache" , "wai-middleware-cache-redis" , "wai-middleware-catch" , "wai-middleware-consul" , "wai-middleware-etag" , "wai-middleware-headers" , "wai-middleware-hmac-client" , "wai-middleware-preprocessor" , "wai-middleware-route" , "wai-middleware-static-caching" , "wai-predicates" , "wai-routes" , "wai-routing" , "wai-session" , "wai-session-clientsession" , "wai-session-tokyocabinet" , "wai-static-cache" , "wai-throttler" , "waitra" -- https://github.com/futurice/waitra/issues/4 , "warp-dynamic" , "warp-tls-uid" , "WashNGo" , "watchdog" , "watcher" , "wavesurfer" , "weather-api" , "WebBits-Html" , "WebBits-multiplate" , "web-browser-in-haskell" , "WebCont" , "webdriver" , "webdriver-angular" , "webdriver-snoy" , "web-encodings" , "webify" , "webkit" , "webkit-javascriptcore" , "web-mongrel2" , "web-plugins" , "Webrexp" , "web-routes-quasi" , "web-routes-transformers" , "webserver" , "websnap" , "webwire" , "wedged" , "weighted-regexp" , "welshy" , "Wheb" , "wheb-mongo" , "wheb-redis" , "wheb-strapped" , "whim" , "whitespace" , "WikimediaParser" , "wikipedia4epub" , "Win32" , "Win32-dhcp-server" , "Win32-errors" , "Win32-extras" , "Win32-junction-point" , "Win32-notify" , "Win32-security" , "Win32-services" , "Win32-services-wrapper" , "windowslive" , "winerror" , "winio" , "WL500gPControl" , "wlc-hs" , "wobsurv" , "woffex" , "wolf" , "word24" , "wordcloud" , "Wordlint" , "WordNet" , "WordNet-ghc74" , "wordsearch" , "wp-archivebot" , "wraxml" , "wright" , "wtk" , "wtk-gtk" , "wumpus-basic" , "wumpus-core" , "wumpus-drawing" , "wumpus-microprint" , "wumpus-tree" , "WURFL" , "wuss" , "wxAsteroids" , "WXDiffCtrl" , "wxFruit" , "wxhnotepad" , "wxturtle" , "wyvern" , "X11-extras" , "X11-rm" , "X11-xdamage" , "X11-xfixes" , "x11-xinput" , "xchat-plugin" , "x-dsp" , "Xec" , "xfconf" , "xhaskell-library" , "xhb" , "xhb-atom-cache" , "xhb-ewmh" , "xine" , "xing-api" , "XInput" , "xkcd" , "xlsior" , "xlsx-templater" , "xml2json" , "xml2x" , "xml-catalog" , "xml-conduit-parse" , "xml-enumerator" , "xml-enumerator-combinators" , "XmlHtmlWriter" , "xml-parsec" , "xml-pipe" , "xml-prettify" , "xml-push" , "xmltv" , "XMMS" , "xmms2-client" , "xmms2-client-glib" , "xmonad-bluetilebranch" , "xmonad-contrib-bluetilebranch" , "xmonad-eval" , "xmonad-screenshot" , "xmpipe" , "XMPP" , "xournal-builder" , "xournal-convert" , "xournal-parser" , "xournal-render" , "xournal-types" , "xsact" , "XSaiga" , "xslt" , "y0l0bot" , "Yablog" , "YACPong" , "yahoo-web-search" , "yajl" , "yajl-enumerator" , "yaml2owl" , "yaml-light-lens" , "YamlReference" , "yaml-rpc" , "yaml-rpc-scotty" , "yaml-rpc-snap" , "yampa-canvas" , "yampa-glfw" , "yaop" , "yarr" , "yarr-image-io" , "yavie" , "ycextra" , "yesod-angular-ui" , "yesod-auth-account-fork" , "yesod-auth-kerberos" , "yesod-auth-ldap" , "yesod-auth-pam" , "yesod-auth-smbclient" , "yesod-comments" , "yesod-continuations" , "yesod-crud-persist" , "yesod-datatables" , "yesod-dsl" , "yesod-eventsource" , "yesod-examples" , "yesod-goodies" , "yesod-links" , "yesod-mangopay" , "yesod-markdown" , "yesod-paginate" , "yesod-pagination" , "yesod-paginator" , "yesod-platform" , "yesod-pure" , "yesod-purescript" , "yesod-raml" , "yesod-routes-typescript" , "yesod-rst" , "yesod-s3" , "yesod-session-redis" , "yesod-static-angular" , "yesod-table" , "yesod-tableview" , "yesod-test-json" , "yesod-vend" , "yesod-worker" , "yet-another-logger" , "YFrob" , "yhccore" , "yi-contrib" , "yi-fuzzy-open" , "yi-gtk" , "yi-vty" , "yjftp" , "Yogurt" , "Yogurt-Standalone" , "yoko" , "york-lava" , "yql" , "yst" , "yuiGrid" , "yuuko" , "zampolit" , "zasni-gerna" , "zendesk-api" , "zeno" , "zeromq3-conduit" , "zeromq3-haskell" , "zeromq-haskell" , "zeroth" , "ZFS" , "zipedit" , "ZMachine" , "zmcat" , "zmqat" , "zoneinfo" , "zoom" , "zoom-cache" , "zoom-cache-pcm" , "zoom-cache-sndfile" , "zot" , "zsh-battery" , "ztail" , "Zwaluw" ] }