From ec55bde67d7f314639cdf7642dcec1fe8da47add Mon Sep 17 00:00:00 2001 From: Alex Hubers Date: Wed, 11 May 2022 16:29:09 -0500 Subject: [PATCH 1/4] Stuff --- compiler/GHC/CmmToAsm/Monad.hs | 2 +- compiler/GHC/Hs/Expr.hs | 13 - impact/compiler/classes/at.raw | 8 + impact/compiler/classes/total.raw | 2 + impact/compiler/classes/wdt.raw | 1 + impact/compiler/instances/at.raw | 2 + impact/compiler/instances/total.raw | 7 + impact/compiler/instances/wdt.raw | 11 + impact/compiler/terms/at.raw | 11 + impact/compiler/terms/total.raw | 27 + impact/compiler/terms/wdt.raw | 23 + impact/libraries/classes/at.raw | 5 + impact/libraries/classes/total.raw | 6 + impact/libraries/classes/wdt.raw | 1 + impact/libraries/instances/at.raw | 5 + impact/libraries/instances/total.raw | 58 +++ impact/libraries/instances/wdt.raw | 0 impact/libraries/terms/at.raw | 37 ++ impact/libraries/terms/total.raw | 54 ++ impact/libraries/terms/wdt.raw | 0 impact/measure-impact.sh | 72 +++ impact/regex.md | 135 +++++ impact/report.csv | 505 +++++++++++++++++++ impact/tocsv.py | 57 +++ libraries/ghc-boot/GHC/Data/SizedSeq.hs | 2 +- libraries/ghc-boot/GHC/ForeignSrcLang.hs | 2 +- libraries/ghc-boot/GHC/LanguageExtensions.hs | 2 +- libraries/ghc-boot/GHC/Unit/Database.hs | 6 +- libraries/ghci/GHCi/Message.hs | 44 +- libraries/ghci/GHCi/RemoteTypes.hs | 2 +- libraries/ghci/GHCi/ResolvedBCO.hs | 4 +- libraries/ghci/GHCi/TH/Binary.hs | 110 ++-- 32 files changed, 1114 insertions(+), 100 deletions(-) create mode 100644 impact/compiler/classes/at.raw create mode 100644 impact/compiler/classes/total.raw create mode 100644 impact/compiler/classes/wdt.raw create mode 100644 impact/compiler/instances/at.raw create mode 100644 impact/compiler/instances/total.raw create mode 100644 impact/compiler/instances/wdt.raw create mode 100644 impact/compiler/terms/at.raw create mode 100644 impact/compiler/terms/total.raw create mode 100644 impact/compiler/terms/wdt.raw create mode 100644 impact/libraries/classes/at.raw create mode 100644 impact/libraries/classes/total.raw create mode 100644 impact/libraries/classes/wdt.raw create mode 100644 impact/libraries/instances/at.raw create mode 100644 impact/libraries/instances/total.raw create mode 100644 impact/libraries/instances/wdt.raw create mode 100644 impact/libraries/terms/at.raw create mode 100644 impact/libraries/terms/total.raw create mode 100644 impact/libraries/terms/wdt.raw create mode 100755 impact/measure-impact.sh create mode 100644 impact/regex.md create mode 100644 impact/report.csv create mode 100644 impact/tocsv.py diff --git a/compiler/GHC/CmmToAsm/Monad.hs b/compiler/GHC/CmmToAsm/Monad.hs index fa6a8706a1a..d3351d433ab 100644 --- a/compiler/GHC/CmmToAsm/Monad.hs +++ b/compiler/GHC/CmmToAsm/Monad.hs @@ -13,7 +13,7 @@ module GHC.CmmToAsm.Monad ( NcgImpl(..), NatM_State(..), mkNatM_State, - NatM, -- instance Monad + NatM, initNat, addImportNat, addNodeBetweenNat, diff --git a/compiler/GHC/Hs/Expr.hs b/compiler/GHC/Hs/Expr.hs index 1c479b4bfb5..d5f009c88b4 100644 --- a/compiler/GHC/Hs/Expr.hs +++ b/compiler/GHC/Hs/Expr.hs @@ -2374,19 +2374,6 @@ pprMatchInCtxt match = hang (text "In" <+> pprMatchContext (m_ctxt match) pprStmtInCtxt :: ( #if MIN_VERSION_base(4,16,0) WDT (XOverLit (GhcPass idR)), - WDT (XOverLit (GhcPass idL)), - WDT (XOverLit (GhcPass (NoGhcTcPass idL))), - WDT (XOverLit (GhcPass (NoGhcTcPass idR))), - WDT (Anno (IdGhcP ctx)), - WDT (Anno (IdGhcP (NoGhcTcPass ctx))), - WDT (Anno (IdGhcP idL)), - WDT (Anno (IdGhcP (NoGhcTcPass idL))), - WDT (Anno (IdGhcP idR)), - WDT (SyntaxExprGhc idL), - WDT (SyntaxExprGhc idR), - WDT (Anno (IdGhcP (NoGhcTcPass idR))), - WDT (SyntaxExprGhc (NoGhcTcPass idL)), - WDT (SyntaxExprGhc (NoGhcTcPass idR)), #endif OutputableBndrId idL, OutputableBndrId idR, diff --git a/impact/compiler/classes/at.raw b/impact/compiler/classes/at.raw new file mode 100644 index 00000000000..40d0cbf43d3 --- /dev/null +++ b/impact/compiler/classes/at.raw @@ -0,0 +1,8 @@ +/home/alex/PTC/ghc/compiler/GHC/CmmToAsm/PIC.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Driver/Session.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Driver/Hooks.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Parser/PostProcess.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Types/TyThing.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Types/Unique/Supply.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Utils/Logger.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Unit/Module.hs:1 diff --git a/impact/compiler/classes/total.raw b/impact/compiler/classes/total.raw new file mode 100644 index 00000000000..052c8939d79 --- /dev/null +++ b/impact/compiler/classes/total.raw @@ -0,0 +1,2 @@ +/home/alex/PTC/ghc/compiler/GHC/Driver/Pipeline/Monad.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Driver/Monad.hs:1 diff --git a/impact/compiler/classes/wdt.raw b/impact/compiler/classes/wdt.raw new file mode 100644 index 00000000000..df090044334 --- /dev/null +++ b/impact/compiler/classes/wdt.raw @@ -0,0 +1 @@ +/home/alex/PTC/ghc/compiler/GHC/Hs/Utils.hs:1 diff --git a/impact/compiler/instances/at.raw b/impact/compiler/instances/at.raw new file mode 100644 index 00000000000..b8a2071fa0e --- /dev/null +++ b/impact/compiler/instances/at.raw @@ -0,0 +1,2 @@ +/home/alex/PTC/ghc/compiler/GHC/Hs/Decls.hs:10 +/home/alex/PTC/ghc/compiler/GHC/Hs/Binds.hs:4 diff --git a/impact/compiler/instances/total.raw b/impact/compiler/instances/total.raw new file mode 100644 index 00000000000..4e5b94da1e2 --- /dev/null +++ b/impact/compiler/instances/total.raw @@ -0,0 +1,7 @@ +/home/alex/PTC/ghc/compiler/GHC/Driver/Session.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Driver/CmdLine.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Driver/Monad.hs:9 +/home/alex/PTC/ghc/compiler/GHC/Data/TrieMap.hs:5 +/home/alex/PTC/ghc/compiler/GHC/Data/Stream.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Types/TyThing.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Cmm/Dataflow/Graph.hs:1 diff --git a/impact/compiler/instances/wdt.raw b/impact/compiler/instances/wdt.raw new file mode 100644 index 00000000000..1c3ff65d5f3 --- /dev/null +++ b/impact/compiler/instances/wdt.raw @@ -0,0 +1,11 @@ +/home/alex/PTC/ghc/compiler/GHC/Iface/Ext/Ast.hs:19 +/home/alex/PTC/ghc/compiler/GHC/Parser/Types.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Expr.hs:13 +/home/alex/PTC/ghc/compiler/GHC/Hs/Pat.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Lit.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Type.hs:11 +/home/alex/PTC/ghc/compiler/GHC/Hs/Decls.hs:24 +/home/alex/PTC/ghc/compiler/GHC/Hs/Binds.hs:7 +/home/alex/PTC/ghc/compiler/GHC/Tc/Gen/Head.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Tc/Utils/Env.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Data/TrieMap.hs:1 diff --git a/impact/compiler/terms/at.raw b/impact/compiler/terms/at.raw new file mode 100644 index 00000000000..a6710951954 --- /dev/null +++ b/impact/compiler/terms/at.raw @@ -0,0 +1,11 @@ +/home/alex/PTC/ghc/compiler/GHC/HsToCore/Quote.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Decls.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Binds.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Data/TrieMap.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Data/Bag.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Data/Stream.hs:2 +/home/alex/PTC/ghc/compiler/GHC/StgToCmm/Foreign.hs:4 +/home/alex/PTC/ghc/compiler/GHC/StgToCmm/Monad.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Types/Id.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Utils/Misc.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Cmm/BlockId.hs:1 diff --git a/impact/compiler/terms/total.raw b/impact/compiler/terms/total.raw new file mode 100644 index 00000000000..deba17829ca --- /dev/null +++ b/impact/compiler/terms/total.raw @@ -0,0 +1,27 @@ +/home/alex/PTC/ghc/compiler/GHC/Iface/Ext/Utils.hs:5 +/home/alex/PTC/ghc/compiler/GHC/Iface/Ext/Ast.hs:2 +/home/alex/PTC/ghc/compiler/GHC/CmmToAsm/Reg/Liveness.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Driver/Session.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Driver/CmdLine.hs:1 +/home/alex/PTC/ghc/compiler/GHC/HsToCore/Pmc/Solver.hs:3 +/home/alex/PTC/ghc/compiler/GHC/HsToCore/Quote.hs:1 +/home/alex/PTC/ghc/compiler/GHC/HsToCore/Docs.hs:1 +/home/alex/PTC/ghc/compiler/GHC/HsToCore/Monad.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Dump.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Tc/Types/EvTerm.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Tc/Utils/Env.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Data/TrieMap.hs:10 +/home/alex/PTC/ghc/compiler/GHC/Data/Bag.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Data/Stream.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Runtime/Interpreter.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Runtime/Heap/Inspect.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Core/Type.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Core/Make.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Utils/Error.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Utils/Panic.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Utils/Monad.hs:6 +/home/alex/PTC/ghc/compiler/GHC/Stg/Subst.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Stg/Lift/Monad.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Cmm/Dataflow/Graph.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Cmm/Dataflow/Block.hs:16 +/home/alex/PTC/ghc/compiler/GHC/Cmm/Dataflow.hs:2 diff --git a/impact/compiler/terms/wdt.raw b/impact/compiler/terms/wdt.raw new file mode 100644 index 00000000000..755fe0b6d7c --- /dev/null +++ b/impact/compiler/terms/wdt.raw @@ -0,0 +1,23 @@ +/home/alex/PTC/ghc/compiler/GHC/ByteCode/Instr.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Driver/Hooks.hs:1 +/home/alex/PTC/ghc/compiler/GHC/HsToCore/Docs.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Hs/Expr.hs:31 +/home/alex/PTC/ghc/compiler/GHC/Hs/Pat.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Hs/Utils.hs:26 +/home/alex/PTC/ghc/compiler/GHC/Hs/Type.hs:11 +/home/alex/PTC/ghc/compiler/GHC/Hs/Decls.hs:10 +/home/alex/PTC/ghc/compiler/GHC/Hs/Binds.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Tc/Gen/Match.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Tc/Gen/Bind.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Tc/Gen/Annotation.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Tc/Utils/Zonk.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Tc/Utils/Env.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Rename/Expr.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Rename/Bind.hs:4 +/home/alex/PTC/ghc/compiler/GHC/Rename/Module.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Data/TrieMap.hs:3 +/home/alex/PTC/ghc/compiler/GHC/Stg/Syntax.hs:5 +/home/alex/PTC/ghc/compiler/GHC/Stg/Lint.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Stg/Lift/Monad.hs:1 +/home/alex/PTC/ghc/compiler/GHC/Stg/Unarise.hs:2 +/home/alex/PTC/ghc/compiler/GHC/Cmm/Ppr.hs:1 diff --git a/impact/libraries/classes/at.raw b/impact/libraries/classes/at.raw new file mode 100644 index 00000000000..7e602cb9365 --- /dev/null +++ b/impact/libraries/classes/at.raw @@ -0,0 +1,5 @@ +/home/alex/PTC/ghc/libraries/ghc-prim/GHC/Types.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Monads.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Term.hs:2 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Reader/Class.hs:1 +/home/alex/PTC/ghc/libraries/array/Data/Array/Base.hs:1 diff --git a/impact/libraries/classes/total.raw b/impact/libraries/classes/total.raw new file mode 100644 index 00000000000..2a68248357b --- /dev/null +++ b/impact/libraries/classes/total.raw @@ -0,0 +1,6 @@ +/home/alex/PTC/ghc/libraries/template-haskell/Language/Haskell/TH/Syntax.hs:2 +/home/alex/PTC/ghc/libraries/base/Control/Arrow.hs:2 +/home/alex/PTC/ghc/libraries/base/Control/Category.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Parsec.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs:1 +/home/alex/PTC/ghc/libraries/time/lib/Data/Format.hs:1 diff --git a/impact/libraries/classes/wdt.raw b/impact/libraries/classes/wdt.raw new file mode 100644 index 00000000000..71380400ec8 --- /dev/null +++ b/impact/libraries/classes/wdt.raw @@ -0,0 +1 @@ +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs:1 diff --git a/impact/libraries/instances/at.raw b/impact/libraries/instances/at.raw new file mode 100644 index 00000000000..4eb935fd769 --- /dev/null +++ b/impact/libraries/instances/at.raw @@ -0,0 +1,5 @@ +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs:4 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/Strict.hs:4 +/home/alex/PTC/ghc/libraries/ghc-prim/GHC/Types.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Term.hs:1 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Cont/Class.hs:1 diff --git a/impact/libraries/instances/total.raw b/impact/libraries/instances/total.raw new file mode 100644 index 00000000000..65319541026 --- /dev/null +++ b/impact/libraries/instances/total.raw @@ -0,0 +1,58 @@ +/home/alex/PTC/ghc/libraries/template-haskell/Language/Haskell/TH/Syntax.hs:1 +/home/alex/PTC/ghc/libraries/base/Control/Arrow.hs:11 +/home/alex/PTC/ghc/libraries/base/Control/Monad/Fix.hs:1 +/home/alex/PTC/ghc/libraries/base/Control/Monad/Zip.hs:1 +/home/alex/PTC/ghc/libraries/base/Control/Applicative.hs:3 +/home/alex/PTC/ghc/libraries/base/Data/Functor/Compose.hs:14 +/home/alex/PTC/ghc/libraries/base/Data/Functor/Classes.hs:2 +/home/alex/PTC/ghc/libraries/base/Data/Functor/Product.hs:17 +/home/alex/PTC/ghc/libraries/base/Data/Functor/Sum.hs:11 +/home/alex/PTC/ghc/libraries/base/Data/Functor/Contravariant.hs:6 +/home/alex/PTC/ghc/libraries/base/GHC/Generics.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Control/Applicative/Lift.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Applicative/Backwards.hs:14 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/List.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Maybe.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/State/Lazy.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/State/Strict.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/CPS.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/Strict.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Except.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Error.hs:8 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/RWS/CPS.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/RWS/Strict.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Accum.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Cont.hs:1 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Select.hs:6 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Reader.hs:5 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Identity.hs:9 +/home/alex/PTC/ghc/libraries/transformers/Data/Functor/Reverse.hs:17 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Map/Internal.hs:7 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/IntMap/Internal.hs:7 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Map/Internal.hs:7 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/IntMap/Internal.hs:7 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs:9 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs:3 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs:9 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs:4 +/home/alex/PTC/ghc/libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs:4 +/home/alex/PTC/ghc/libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs:1 +/home/alex/PTC/ghc/libraries/binary/src/Data/Binary/Generic.hs:10 +/home/alex/PTC/ghc/libraries/deepseq/Control/DeepSeq.hs:11 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Monads.hs:4 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/InputT.hs:4 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command.hs:3 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs:2 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Prim.hs:13 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/State/Class.hs:13 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Writer/Class.hs:11 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Reader/Class.hs:13 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/RWS/Class.hs:6 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Cont/Class.hs:12 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Error/Class.hs:12 +/home/alex/PTC/ghc/libraries/exceptions/src/Control/Monad/Catch/Pure.hs:15 +/home/alex/PTC/ghc/libraries/exceptions/src/Control/Monad/Catch.hs:36 diff --git a/impact/libraries/instances/wdt.raw b/impact/libraries/instances/wdt.raw new file mode 100644 index 00000000000..e69de29bb2d diff --git a/impact/libraries/terms/at.raw b/impact/libraries/terms/at.raw new file mode 100644 index 00000000000..fece38babe8 --- /dev/null +++ b/impact/libraries/terms/at.raw @@ -0,0 +1,37 @@ +/home/alex/PTC/ghc/libraries/base/Data/List/NonEmpty.hs:1 +/home/alex/PTC/ghc/libraries/base/Data/Functor/Contravariant.hs:1 +/home/alex/PTC/ghc/libraries/base/Data/Traversable.hs:2 +/home/alex/PTC/ghc/libraries/base/GHC/Base.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/State/Lazy.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/CPS.hs:1 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Writer/Strict.hs:7 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Except.hs:1 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Accum.hs:1 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Map/Strict/Internal.hs:1 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Map/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Tree.hs:2 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/IntMap/Internal.hs:2 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs:1 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Map/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Tree.hs:2 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/IntMap/Internal.hs:2 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs:10 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Types/Version.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs:6 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs:3 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Monads.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Term.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Completion.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command/History.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/RunCommand.hs:3 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Expr.hs:1 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Char.hs:2 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/State/Class.hs:1 +/home/alex/PTC/ghc/libraries/mtl/Control/Monad/Writer/Class.hs:2 +/home/alex/PTC/ghc/libraries/array/Data/Array/Base.hs:3 +/home/alex/PTC/ghc/libraries/exceptions/src/Control/Monad/Catch.hs:5 diff --git a/impact/libraries/terms/total.raw b/impact/libraries/terms/total.raw new file mode 100644 index 00000000000..ebc9ea48750 --- /dev/null +++ b/impact/libraries/terms/total.raw @@ -0,0 +1,54 @@ +/home/alex/PTC/ghc/libraries/template-haskell/Language/Haskell/TH/Syntax.hs:1 +/home/alex/PTC/ghc/libraries/base/Control/Monad.hs:2 +/home/alex/PTC/ghc/libraries/base/Data/Bitraversable.hs:5 +/home/alex/PTC/ghc/libraries/base/Data/Traversable.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Maybe.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/State/Lazy.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/State/Strict.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Except.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Error.hs:2 +/home/alex/PTC/ghc/libraries/transformers/Control/Monad/Trans/Cont.hs:1 +/home/alex/PTC/ghc/libraries/terminfo/System/Console/Terminfo/Keys.hs:14 +/home/alex/PTC/ghc/libraries/terminfo/System/Console/Terminfo/Base.hs:2 +/home/alex/PTC/ghc/libraries/terminfo/System/Console/Terminfo/Edit.hs:4 +/home/alex/PTC/ghc/libraries/terminfo/System/Console/Terminfo/Cursor.hs:23 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Sequence/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Map/Strict/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Map/Internal.hs:11 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/Tree.hs:2 +/home/alex/PTC/ghc/libraries/containers/containers/src/Data/IntMap/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Sequence/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs:4 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Map/Internal.hs:11 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/Tree.hs:2 +/home/alex/PTC/ghc/libraries/containers/containers-tests/src/Data/IntMap/Internal.hs:4 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs:11 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs:9 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs:2 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs:2 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs:2 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs:1 +/home/alex/PTC/ghc/libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline.hs:15 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Vi.hs:13 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Term.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/InputT.hs:13 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command.hs:10 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs:2 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command/Completion.hs:8 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs:4 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command/History.hs:5 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/Command/Undo.hs:1 +/home/alex/PTC/ghc/libraries/haskeline/System/Console/Haskeline/RunCommand.hs:3 +/home/alex/PTC/ghc/libraries/time/lib/Data/Time/Format/Parse.hs:2 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Expr.hs:1 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Prim.hs:33 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Token.hs:1 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Char.hs:19 +/home/alex/PTC/ghc/libraries/parsec/src/Text/Parsec/Combinator.hs:24 +/home/alex/PTC/ghc/libraries/array/Data/Array/Base.hs:5 diff --git a/impact/libraries/terms/wdt.raw b/impact/libraries/terms/wdt.raw new file mode 100644 index 00000000000..e69de29bb2d diff --git a/impact/measure-impact.sh b/impact/measure-impact.sh new file mode 100755 index 00000000000..4fb1fadfe26 --- /dev/null +++ b/impact/measure-impact.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +ANY="(\w|,|\(|\s|\n|\#|\))" +INSTANCE="^instance" +CLASS="^class" +TERM="^(\w+\s+::)" + +function measure () { + PATTERN="$2$ANY+#if MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" + echo $PATTERN; + pcregrep --include "\.hs$" -Mr "$PATTERN" ~/PTC/ghc/$1 > "$3" +} + +AT=" \@ " +TOTAL="Total" +WDT="WDT" + +function measure2 () { + PATTERN="$2$ANY+?$3" + echo $PATTERN; + pcregrep --include "\.hs$" -Mrc "$PATTERN" ~/PTC/ghc/$1 | grep -v ":0" > "$4" +} + +## -------------------------------------------------------------------------------- +## TODO: this should be abstracted. +## -------------------------------------------------------------------------------- + +measure2 compiler/GHC "$INSTANCE" "$WDT" ./compiler/instances/wdt.raw +measure2 compiler/GHC "$INSTANCE" "$TOTAL" ./compiler/instances/total.raw +measure2 compiler/GHC "$INSTANCE" "$AT" ./compiler/instances/at.raw + +measure2 compiler/GHC "$CLASS" "$WDT" ./compiler/classes/wdt.raw +measure2 compiler/GHC "$CLASS" "$TOTAL" ./compiler/classes/total.raw +measure2 compiler/GHC "$CLASS" "$AT" ./compiler/classes/at.raw + +measure2 compiler/GHC "$TERM" "$WDT" ./compiler/terms/wdt.raw +measure2 compiler/GHC "$TERM" "$TOTAL" ./compiler/terms/total.raw +measure2 compiler/GHC "$TERM" "$AT" ./compiler/terms/at.raw + +## -------------------------------------------------------------------------------- +## -------------------------------------------------------------------------------- + + +measure2 libraries "$INSTANCE" "$WDT" ./libraries/instances/wdt.raw +measure2 libraries "$INSTANCE" "$TOTAL" ./libraries/instances/total.raw +measure2 libraries "$INSTANCE" "$AT" ./libraries/instances/at.raw + +measure2 libraries "$CLASS" "$WDT" ./libraries/classes/wdt.raw +measure2 libraries "$CLASS" "$TOTAL" ./libraries/classes/total.raw +measure2 libraries "$CLASS" "$AT" ./libraries/classes/at.raw + +measure2 libraries "$TERM" "$WDT" ./libraries/terms/wdt.raw +measure2 libraries "$TERM" "$TOTAL" ./libraries/terms/total.raw +measure2 libraries "$TERM" "$AT" ./libraries/terms/at.raw + + + + +## -------------------------------------------------------------------------------- + + +# measure2 compiler/GHC/ "$INSTANCE" ./compiler/instances.raw +# measure2 compiler/GHC/ "$CLASS" ./compiler/classes.raw + +# pcregrep --include "\.hs$" -Mcr "instance (\w|,|\(|\s|\n)*#if MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/instances.impact_log; +# pcregrep --include "\.hs$" -Mcr "class (\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/classes.impact_log; +# pcregrep --include "\.hs$" -Mcr "^(\w+\s+::)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/top_level_terms.impact_log; +# pcregrep --include "\.hs$" -Mcr "(\w+\s+::)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/all_terms.impact_log; +# +# cd ./impact; +# python tocsv.py; +# diff --git a/impact/regex.md b/impact/regex.md new file mode 100644 index 00000000000..ee0badb64ef --- /dev/null +++ b/impact/regex.md @@ -0,0 +1,135 @@ +## Suffix +```regex +(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif +``` + +## Instances +```regex +(instance)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif +``` + +## Testing +```hs +instance ( +#if MIN_VERSION_base(4,16,0) + WFT (XOverLit (GhcPass p)), + WFT (XOverLit (GhcPass (NoGhcTcPass p))), + WFT (Anno (IdGhcP p)), + WFT (Anno (IdGhcP (NoGhcTcPass p))), + WFT (SyntaxExprGhc p), + WFT (SyntaxExprGhc (NoGhcTcPass p)), +#endif + OutputableBndrId p) => Outputable (HsExpr (GhcPass p)) where + ppr expr = pprExpr expr + +instance + +#if MIN_VERSION_base(4,16,0) + WFT a +#endif + => Pfft where + pfft = undefined + + +instance ( + Foobar a, +#if MIN_VERSION_base(4,16,0) + WFT +#endif + +instance pfft + #if MIN_VERSION_base(4,16,0) + asdfasdf + ddd + #endif +``` + +# Class + +```regex +(class)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif +``` + +## testing + +```hs +class +#if MIN_VERSION_base(4,16,0) + WFT a => +#endif + Pfft a where + pfft :: Bool + +class ( + Poo b, +#if MIN_VERSION_base(4,16,0) + WFT a, + WFT b, +#endif + Poo c) => Pfffft a where + pfffft :: Bool + +``` + + +## (Top-level) term signatures +```regex +^(\w+\s+::)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif +``` + +**Note**: To catch nested signatures, i.e, from let bindings, GADTs, or records, +remove the `^` above and take the difference. + + +## Testing +```hs +----------------------- +----------------------- +-- pprExpr, pprLExpr, pprBinds call pprDeeper; +-- the underscore versions do not +pprLExpr :: ( +#if MIN_VERSION_base(4,16,0) + WFT (XOverLit (GhcPass p)), + WFT (XOverLit (GhcPass (NoGhcTcPass p))), + WFT (Anno (IdGhcP p)), + WFT (Anno (IdGhcP (NoGhcTcPass p))), + WFT (SyntaxExprGhc p), + WFT (SyntaxExprGhc (NoGhcTcPass p)), +#endif + OutputableBndrId p) => LHsExpr (GhcPass p) -> SDoc + +pprLExpr :: ( + Pfft a, +#if MIN_VERSION_base(4,16,0) + WFT (XOverLit (GhcPass p)), + WFT (XOverLit (GhcPass (NoGhcTcPass p))), + WFT (Anno (IdGhcP p)), + WFT (Anno (IdGhcP (NoGhcTcPass p))), + WFT (SyntaxExprGhc p), + WFT (SyntaxExprGhc (NoGhcTcPass p)), +#endif + Pfft b, + OutputableBndrId p) => LHsExpr (GhcPass p) -> SDoc + +pprExpr :: + #if MIN_VERSION_base(4,16,0) + Pfft a => + #endif + restOfSignature -> Bool +pprExpr = undefined + +-- Inside records +data Foo = { + foobar :: +#if MIN_VERSION_base(4,16,0) + Pfft a => +#endif [a] +} + +-- GADTs +data Foo where + foobar :: +#if MIN_VERSION_base(4,16,0) + Pfft a => +#endif Foo a +``` diff --git a/impact/report.csv b/impact/report.csv new file mode 100644 index 00000000000..92e9c539a12 --- /dev/null +++ b/impact/report.csv @@ -0,0 +1,505 @@ +full_path,package,module,type,ats,totals,WDTs +compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,classes,1,0,0 +compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,instances,1,0,0 +compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,terms,1,0,0 +compiler/GHC/Driver/Session.hs,GHC,Session.hs,classes,1,4,0 +compiler/GHC/Driver/Session.hs,GHC,Session.hs,instances,1,4,0 +compiler/GHC/Driver/Session.hs,GHC,Session.hs,terms,1,4,0 +compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,classes,1,0,1 +compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,instances,1,0,1 +compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,terms,1,0,1 +compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,classes,1,0,0 +compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,instances,1,0,0 +compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,terms,1,0,0 +compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,classes,1,1,0 +compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,instances,1,1,0 +compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,terms,1,1,0 +compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,classes,1,0,0 +compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,instances,1,0,0 +compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,terms,1,0,0 +compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,classes,1,0,0 +compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,instances,1,0,0 +compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,terms,1,0,0 +compiler/GHC/Unit/Module.hs,GHC,Module.hs,classes,1,0,0 +compiler/GHC/Unit/Module.hs,GHC,Module.hs,instances,1,0,0 +compiler/GHC/Unit/Module.hs,GHC,Module.hs,terms,1,0,0 +compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,classes,0,1,0 +compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,instances,0,1,0 +compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,terms,0,1,0 +compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,classes,0,9,0 +compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,instances,0,9,0 +compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,terms,0,9,0 +compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,classes,0,0,26 +compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,instances,0,0,26 +compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,terms,0,0,26 +compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,classes,1,0,10 +compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,instances,1,0,10 +compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,terms,1,0,10 +compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,classes,2,0,2 +compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,instances,2,0,2 +compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,terms,2,0,2 +compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,classes,0,1,0 +compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,instances,0,1,0 +compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,terms,0,1,0 +compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,classes,3,10,3 +compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,instances,3,10,3 +compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,terms,3,10,3 +compiler/GHC/Data/Stream.hs,GHC,Stream.hs,classes,2,4,0 +compiler/GHC/Data/Stream.hs,GHC,Stream.hs,instances,2,4,0 +compiler/GHC/Data/Stream.hs,GHC,Stream.hs,terms,2,4,0 +compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,classes,0,1,0 +compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,instances,0,1,0 +compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,terms,0,1,0 +compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,classes,0,2,19 +compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,instances,0,2,19 +compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,terms,0,2,19 +compiler/GHC/Parser/Types.hs,GHC,Types.hs,classes,0,0,1 +compiler/GHC/Parser/Types.hs,GHC,Types.hs,instances,0,0,1 +compiler/GHC/Parser/Types.hs,GHC,Types.hs,terms,0,0,1 +compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,classes,0,0,31 +compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,instances,0,0,31 +compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,terms,0,0,31 +compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,classes,0,0,3 +compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,instances,0,0,3 +compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,terms,0,0,3 +compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,classes,0,0,1 +compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,instances,0,0,1 +compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,terms,0,0,1 +compiler/GHC/Hs/Type.hs,GHC,Type.hs,classes,0,0,11 +compiler/GHC/Hs/Type.hs,GHC,Type.hs,instances,0,0,11 +compiler/GHC/Hs/Type.hs,GHC,Type.hs,terms,0,0,11 +compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,classes,0,0,2 +compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,instances,0,0,2 +compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,terms,0,0,2 +compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,classes,0,1,1 +compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,instances,0,1,1 +compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,terms,0,1,1 +compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,classes,1,1,0 +compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,instances,1,1,0 +compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,terms,1,1,0 +compiler/GHC/Data/Bag.hs,GHC,Bag.hs,classes,3,2,0 +compiler/GHC/Data/Bag.hs,GHC,Bag.hs,instances,3,2,0 +compiler/GHC/Data/Bag.hs,GHC,Bag.hs,terms,3,2,0 +compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,classes,4,0,0 +compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,instances,4,0,0 +compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,terms,4,0,0 +compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,classes,1,0,0 +compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,instances,1,0,0 +compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,terms,1,0,0 +compiler/GHC/Types/Id.hs,GHC,Id.hs,classes,2,0,0 +compiler/GHC/Types/Id.hs,GHC,Id.hs,instances,2,0,0 +compiler/GHC/Types/Id.hs,GHC,Id.hs,terms,2,0,0 +compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,classes,1,0,0 +compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,instances,1,0,0 +compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,terms,1,0,0 +compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,classes,1,0,0 +compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,instances,1,0,0 +compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,terms,1,0,0 +compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,classes,0,5,0 +compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,instances,0,5,0 +compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,terms,0,5,0 +compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,classes,0,3,0 +compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,instances,0,3,0 +compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,terms,0,3,0 +compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,classes,0,3,0 +compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,instances,0,3,0 +compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,terms,0,3,0 +compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,classes,0,1,1 +compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,instances,0,1,1 +compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,terms,0,1,1 +compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,classes,0,1,0 +compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,instances,0,1,0 +compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,terms,0,1,0 +compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,classes,0,4,0 +compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,instances,0,4,0 +compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,terms,0,4,0 +compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,classes,0,1,0 +compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,instances,0,1,0 +compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,terms,0,1,0 +compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,classes,0,2,0 +compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,instances,0,2,0 +compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,terms,0,2,0 +compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,classes,0,3,0 +compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,instances,0,3,0 +compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,terms,0,3,0 +compiler/GHC/Core/Type.hs,GHC,Type.hs,classes,0,2,0 +compiler/GHC/Core/Type.hs,GHC,Type.hs,instances,0,2,0 +compiler/GHC/Core/Type.hs,GHC,Type.hs,terms,0,2,0 +compiler/GHC/Core/Make.hs,GHC,Make.hs,classes,0,1,0 +compiler/GHC/Core/Make.hs,GHC,Make.hs,instances,0,1,0 +compiler/GHC/Core/Make.hs,GHC,Make.hs,terms,0,1,0 +compiler/GHC/Utils/Error.hs,GHC,Error.hs,classes,0,2,0 +compiler/GHC/Utils/Error.hs,GHC,Error.hs,instances,0,2,0 +compiler/GHC/Utils/Error.hs,GHC,Error.hs,terms,0,2,0 +compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,classes,0,1,0 +compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,instances,0,1,0 +compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,terms,0,1,0 +compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,classes,0,6,0 +compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,instances,0,6,0 +compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,terms,0,6,0 +compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,classes,0,1,0 +compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,instances,0,1,0 +compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,terms,0,1,0 +compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,classes,0,2,1 +compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,instances,0,2,1 +compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,terms,0,2,1 +compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,classes,0,16,0 +compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,instances,0,16,0 +compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,terms,0,16,0 +compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,classes,0,2,0 +compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,instances,0,2,0 +compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,terms,0,2,0 +compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,classes,0,0,4 +compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,instances,0,0,4 +compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,terms,0,0,4 +compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,classes,0,0,4 +compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,instances,0,0,4 +compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,terms,0,0,4 +compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,classes,0,0,1 +compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,instances,0,0,1 +compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,terms,0,0,1 +compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,classes,0,0,1 +compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,instances,0,0,1 +compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,terms,0,0,1 +compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,classes,0,0,1 +compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,instances,0,0,1 +compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,terms,0,0,1 +compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,classes,0,0,4 +compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,instances,0,0,4 +compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,terms,0,0,4 +compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,classes,0,0,4 +compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,instances,0,0,4 +compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,terms,0,0,4 +compiler/GHC/Rename/Module.hs,GHC,Module.hs,classes,0,0,1 +compiler/GHC/Rename/Module.hs,GHC,Module.hs,instances,0,0,1 +compiler/GHC/Rename/Module.hs,GHC,Module.hs,terms,0,0,1 +compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,classes,0,0,5 +compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,instances,0,0,5 +compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,terms,0,0,5 +compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,classes,0,0,1 +compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,instances,0,0,1 +compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,terms,0,0,1 +compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,classes,0,0,2 +compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,instances,0,0,2 +compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,terms,0,0,2 +compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,classes,0,0,1 +compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,instances,0,0,1 +compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,terms,0,0,1 +libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,classes,2,0,0 +libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,instances,2,0,0 +libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,terms,2,0,0 +libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,classes,1,4,0 +libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,instances,1,4,0 +libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,terms,1,4,0 +libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,classes,1,2,0 +libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,instances,1,2,0 +libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,terms,1,2,0 +libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,classes,1,13,0 +libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,instances,1,13,0 +libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,terms,1,13,0 +libraries/array/Data/Array/Base.hs,array,Base.hs,classes,3,5,0 +libraries/array/Data/Array/Base.hs,array,Base.hs,instances,3,5,0 +libraries/array/Data/Array/Base.hs,array,Base.hs,terms,3,5,0 +libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,classes,0,1,0 +libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,instances,0,1,0 +libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,terms,0,1,0 +libraries/base/Control/Arrow.hs,base,Arrow.hs,classes,0,11,0 +libraries/base/Control/Arrow.hs,base,Arrow.hs,instances,0,11,0 +libraries/base/Control/Arrow.hs,base,Arrow.hs,terms,0,11,0 +libraries/base/Control/Category.hs,base,Category.hs,classes,0,1,0 +libraries/base/Control/Category.hs,base,Category.hs,instances,0,1,0 +libraries/base/Control/Category.hs,base,Category.hs,terms,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,classes,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,terms,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,classes,0,4,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,instances,0,4,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,terms,0,4,0 +libraries/time/lib/Data/Format.hs,time,Format.hs,classes,0,1,0 +libraries/time/lib/Data/Format.hs,time,Format.hs,instances,0,1,0 +libraries/time/lib/Data/Format.hs,time,Format.hs,terms,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,classes,0,0,1 +libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,instances,0,0,1 +libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,terms,0,0,1 +libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,classes,7,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,instances,7,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,terms,7,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,classes,7,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,instances,7,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,terms,7,9,0 +libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,classes,1,12,0 +libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,instances,1,12,0 +libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,terms,1,12,0 +libraries/base/Control/Monad/Fix.hs,base,Fix.hs,classes,0,1,0 +libraries/base/Control/Monad/Fix.hs,base,Fix.hs,instances,0,1,0 +libraries/base/Control/Monad/Fix.hs,base,Fix.hs,terms,0,1,0 +libraries/base/Control/Monad/Zip.hs,base,Zip.hs,classes,0,1,0 +libraries/base/Control/Monad/Zip.hs,base,Zip.hs,instances,0,1,0 +libraries/base/Control/Monad/Zip.hs,base,Zip.hs,terms,0,1,0 +libraries/base/Control/Applicative.hs,base,Applicative.hs,classes,0,3,0 +libraries/base/Control/Applicative.hs,base,Applicative.hs,instances,0,3,0 +libraries/base/Control/Applicative.hs,base,Applicative.hs,terms,0,3,0 +libraries/base/Data/Functor/Compose.hs,base,Compose.hs,classes,0,14,0 +libraries/base/Data/Functor/Compose.hs,base,Compose.hs,instances,0,14,0 +libraries/base/Data/Functor/Compose.hs,base,Compose.hs,terms,0,14,0 +libraries/base/Data/Functor/Classes.hs,base,Classes.hs,classes,0,2,0 +libraries/base/Data/Functor/Classes.hs,base,Classes.hs,instances,0,2,0 +libraries/base/Data/Functor/Classes.hs,base,Classes.hs,terms,0,2,0 +libraries/base/Data/Functor/Product.hs,base,Product.hs,classes,0,17,0 +libraries/base/Data/Functor/Product.hs,base,Product.hs,instances,0,17,0 +libraries/base/Data/Functor/Product.hs,base,Product.hs,terms,0,17,0 +libraries/base/Data/Functor/Sum.hs,base,Sum.hs,classes,0,11,0 +libraries/base/Data/Functor/Sum.hs,base,Sum.hs,instances,0,11,0 +libraries/base/Data/Functor/Sum.hs,base,Sum.hs,terms,0,11,0 +libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,classes,1,6,0 +libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,instances,1,6,0 +libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,terms,1,6,0 +libraries/base/GHC/Generics.hs,base,Generics.hs,classes,0,9,0 +libraries/base/GHC/Generics.hs,base,Generics.hs,instances,0,9,0 +libraries/base/GHC/Generics.hs,base,Generics.hs,terms,0,9,0 +libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,classes,0,2,0 +libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,instances,0,2,0 +libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,terms,0,2,0 +libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,classes,0,14,0 +libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,instances,0,14,0 +libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,terms,0,14,0 +libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,classes,0,9,0 +libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,instances,0,9,0 +libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,terms,0,9,0 +libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,classes,0,2,0 +libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,instances,0,2,0 +libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,terms,0,2,0 +libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,classes,2,2,0 +libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,instances,2,2,0 +libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,terms,2,2,0 +libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,classes,0,2,0 +libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,instances,0,2,0 +libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,terms,0,2,0 +libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,classes,1,7,0 +libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,instances,1,7,0 +libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,terms,1,7,0 +libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,classes,1,2,0 +libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,instances,1,2,0 +libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,terms,1,2,0 +libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,classes,0,2,0 +libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,instances,0,2,0 +libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,terms,0,2,0 +libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,classes,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,instances,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,terms,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,classes,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,instances,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,terms,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,classes,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,instances,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,terms,0,7,0 +libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,classes,1,7,0 +libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,instances,1,7,0 +libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,terms,1,7,0 +libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,classes,0,1,0 +libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,instances,0,1,0 +libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,terms,0,1,0 +libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,classes,0,6,0 +libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,instances,0,6,0 +libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,terms,0,6,0 +libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,classes,0,5,0 +libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,instances,0,5,0 +libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,terms,0,5,0 +libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,classes,0,9,0 +libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,instances,0,9,0 +libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,terms,0,9,0 +libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,classes,0,17,0 +libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,instances,0,17,0 +libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,terms,0,17,0 +libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,classes,4,11,0 +libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,instances,4,11,0 +libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,terms,4,11,0 +libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,classes,2,4,0 +libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,instances,2,4,0 +libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,terms,2,4,0 +libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,classes,4,11,0 +libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,instances,4,11,0 +libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,terms,4,11,0 +libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,classes,2,4,0 +libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,instances,2,4,0 +libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,terms,2,4,0 +libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,classes,6,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,instances,6,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,terms,6,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,classes,0,3,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,instances,0,3,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,terms,0,3,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,classes,3,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,instances,3,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,terms,3,9,0 +libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,classes,0,2,0 +libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,instances,0,2,0 +libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,terms,0,2,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,classes,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,instances,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,terms,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,classes,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,instances,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,terms,0,1,0 +libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,classes,0,10,0 +libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,instances,0,10,0 +libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,terms,0,10,0 +libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,classes,0,11,0 +libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,instances,0,11,0 +libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,terms,0,11,0 +libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,classes,0,13,0 +libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,instances,0,13,0 +libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,terms,0,13,0 +libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,classes,0,10,0 +libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,instances,0,10,0 +libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,terms,0,10,0 +libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,classes,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,instances,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,terms,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,classes,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,instances,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,terms,0,2,0 +libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,classes,0,33,0 +libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,instances,0,33,0 +libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,terms,0,33,0 +libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,classes,1,13,0 +libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,instances,1,13,0 +libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,terms,1,13,0 +libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,classes,2,11,0 +libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,instances,2,11,0 +libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,terms,2,11,0 +libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,classes,0,6,0 +libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,instances,0,6,0 +libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,terms,0,6,0 +libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,classes,0,12,0 +libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,instances,0,12,0 +libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,terms,0,12,0 +libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,classes,0,15,0 +libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,instances,0,15,0 +libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,terms,0,15,0 +libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,classes,5,36,0 +libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,instances,5,36,0 +libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,terms,5,36,0 +libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,classes,1,0,0 +libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,instances,1,0,0 +libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,terms,1,0,0 +libraries/base/Data/Traversable.hs,base,Traversable.hs,classes,2,2,0 +libraries/base/Data/Traversable.hs,base,Traversable.hs,instances,2,2,0 +libraries/base/Data/Traversable.hs,base,Traversable.hs,terms,2,2,0 +libraries/base/GHC/Base.hs,base,Base.hs,classes,2,0,0 +libraries/base/GHC/Base.hs,base,Base.hs,instances,2,0,0 +libraries/base/GHC/Base.hs,base,Base.hs,terms,2,0,0 +libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,classes,1,4,0 +libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,instances,1,4,0 +libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,terms,1,4,0 +libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,classes,2,2,0 +libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,instances,2,2,0 +libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,terms,2,2,0 +libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,classes,1,4,0 +libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,instances,1,4,0 +libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,terms,1,4,0 +libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,classes,2,2,0 +libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,instances,2,2,0 +libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,terms,2,2,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,classes,1,0,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,instances,1,0,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,terms,1,0,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,classes,10,11,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,instances,10,11,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,terms,10,11,0 +libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,classes,1,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,instances,1,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,terms,1,0,0 +libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,classes,1,0,0 +libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,instances,1,0,0 +libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,terms,1,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,classes,1,1,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,instances,1,1,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,terms,1,1,0 +libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,classes,1,0,0 +libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,instances,1,0,0 +libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,terms,1,0,0 +libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,classes,1,4,0 +libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,instances,1,4,0 +libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,terms,1,4,0 +libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,classes,1,5,0 +libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,instances,1,5,0 +libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,terms,1,5,0 +libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,classes,3,3,0 +libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,instances,3,3,0 +libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,terms,3,3,0 +libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,classes,1,1,0 +libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,instances,1,1,0 +libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,terms,1,1,0 +libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,classes,2,19,0 +libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,instances,2,19,0 +libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,terms,2,19,0 +libraries/base/Control/Monad.hs,base,Monad.hs,classes,0,2,0 +libraries/base/Control/Monad.hs,base,Monad.hs,instances,0,2,0 +libraries/base/Control/Monad.hs,base,Monad.hs,terms,0,2,0 +libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,classes,0,5,0 +libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,instances,0,5,0 +libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,terms,0,5,0 +libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,classes,0,14,0 +libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,instances,0,14,0 +libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,terms,0,14,0 +libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,classes,0,2,0 +libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,instances,0,2,0 +libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,terms,0,2,0 +libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,classes,0,4,0 +libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,instances,0,4,0 +libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,terms,0,4,0 +libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,classes,0,23,0 +libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,instances,0,23,0 +libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,terms,0,23,0 +libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,classes,0,4,0 +libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,instances,0,4,0 +libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,terms,0,4,0 +libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,classes,0,4,0 +libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,instances,0,4,0 +libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,terms,0,4,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,classes,0,1,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,terms,0,1,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,classes,0,9,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,instances,0,9,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,terms,0,9,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,classes,0,2,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,terms,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,classes,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,terms,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,classes,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,terms,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,classes,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,terms,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,classes,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,terms,0,1,0 +libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,classes,0,15,0 +libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,instances,0,15,0 +libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,terms,0,15,0 +libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,classes,0,13,0 +libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,instances,0,13,0 +libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,terms,0,13,0 +libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,classes,0,1,0 +libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,instances,0,1,0 +libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,terms,0,1,0 +libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,classes,0,8,0 +libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,instances,0,8,0 +libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,terms,0,8,0 +libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,classes,0,1,0 +libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,instances,0,1,0 +libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,terms,0,1,0 +libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,classes,0,2,0 +libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,instances,0,2,0 +libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,terms,0,2,0 +libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,classes,0,1,0 +libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,instances,0,1,0 +libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,terms,0,1,0 +libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,classes,0,24,0 +libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,instances,0,24,0 +libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,terms,0,24,0 diff --git a/impact/tocsv.py b/impact/tocsv.py new file mode 100644 index 00000000000..818397523f3 --- /dev/null +++ b/impact/tocsv.py @@ -0,0 +1,57 @@ +import csv + +def parse_line(p): + line = p.replace("/home/alex/PTC/ghc/", "") + full_path, count = line.split(":") + return (full_path, int(count)) + +with open("./report.csv", "w") as report: + writer = csv.DictWriter(report, fieldnames=['full_path', 'package', 'module', 'type', 'ats', 'totals', 'WDTs']) + writer.writeheader() + + interm = {} + + for d in ['compiler','libraries']: + for f in ['classes', 'instances', 'terms']: + # Multiline-with statements made available in python 3.10. U+1F643 upsidedownsmile U+1F643 + with open("./{}/{}/at.raw".format(d,f), "r") as ats, open("./{}/{}/total.raw".format(d,f), "r") as totals, open("./{}/{}/wdt.raw".format(d,f), "r") as wdts: + for name, log in {"ats": ats, "totals": totals, "WDTs": wdts}.items(): + lines = log.readlines() + for line in lines: + full_path, count = parse_line(line) + + # Inferwence + slugs = full_path.split("/") + package = slugs[1] + module = slugs[-1] + + if not full_path in interm: + counts = { + "ats": 0, + "totals": 0, + "WDTs" : 0 + } + + interm[full_path] = { + 'full_path': full_path, + 'package' : package, + 'module' : module, + 'classes' : counts, + 'instances': counts, + 'terms' : counts, + } + + interm[full_path][f][name] = count + + for _, fp in interm.items(): + for ugh in ['classes', 'instances', 'terms']: + row = { + 'full_path': fp['full_path'], + 'package' : fp['package'], + 'module' : fp['module'], + 'type' : ugh, + 'ats' : fp[ugh]['ats'], + 'totals' : fp[ugh]['totals'], + 'WDTs' : fp[ugh]['WDTs'], + } + writer.writerow(row) diff --git a/libraries/ghc-boot/GHC/Data/SizedSeq.hs b/libraries/ghc-boot/GHC/Data/SizedSeq.hs index 975af2c8546..e73de9ad7ae 100644 --- a/libraries/ghc-boot/GHC/Data/SizedSeq.hs +++ b/libraries/ghc-boot/GHC/Data/SizedSeq.hs @@ -26,7 +26,7 @@ instance Foldable SizedSeq where instance Traversable SizedSeq where traverse f (SizedSeq sz l) = SizedSeq sz . reverse <$> traverse f (reverse l) -instance Binary a => Binary (SizedSeq a) +instinst Binary a => Binary (SizedSeq a) instance NFData a => NFData (SizedSeq a) where rnf (SizedSeq _ xs) = rnf xs diff --git a/libraries/ghc-boot/GHC/ForeignSrcLang.hs b/libraries/ghc-boot/GHC/ForeignSrcLang.hs index 9ca4f04cf71..6727089d855 100644 --- a/libraries/ghc-boot/GHC/ForeignSrcLang.hs +++ b/libraries/ghc-boot/GHC/ForeignSrcLang.hs @@ -9,4 +9,4 @@ module GHC.ForeignSrcLang import Data.Binary import GHC.ForeignSrcLang.Type -instance Binary ForeignSrcLang +instinst Binary ForeignSrcLang diff --git a/libraries/ghc-boot/GHC/LanguageExtensions.hs b/libraries/ghc-boot/GHC/LanguageExtensions.hs index 13c3ec52082..86edb76ab57 100644 --- a/libraries/ghc-boot/GHC/LanguageExtensions.hs +++ b/libraries/ghc-boot/GHC/LanguageExtensions.hs @@ -14,4 +14,4 @@ module GHC.LanguageExtensions ( module GHC.LanguageExtensions.Type ) where import Data.Binary import GHC.LanguageExtensions.Type -instance Binary Extension +instinst Binary Extension diff --git a/libraries/ghc-boot/GHC/Unit/Database.hs b/libraries/ghc-boot/GHC/Unit/Database.hs index 9a182941d76..9b3f58f4496 100644 --- a/libraries/ghc-boot/GHC/Unit/Database.hs +++ b/libraries/ghc-boot/GHC/Unit/Database.hs @@ -538,7 +538,7 @@ writeFileAtomic targetPath content = do set_metadata tmpPath renameFile tmpPath targetPath) -instance Binary DbUnitInfo where +instinst Binary DbUnitInfo where put (GenericUnitInfo unitId unitInstanceOf unitInstantiations unitPackageId @@ -635,7 +635,7 @@ instance Binary DbUnitInfo where unitHiddenModules unitIsIndefinite unitIsExposed unitIsTrusted) -instance Binary DbModule where +instinst Binary DbModule where put (DbModule dbModuleUnitId dbModuleName) = do putWord8 0 put dbModuleUnitId @@ -649,7 +649,7 @@ instance Binary DbModule where 0 -> DbModule <$> get <*> get _ -> DbModuleVar <$> get -instance Binary DbInstUnitId where +instinst Binary DbInstUnitId where put (DbUnitId uid) = do putWord8 0 put uid diff --git a/libraries/ghci/GHCi/Message.hs b/libraries/ghci/GHCi/Message.hs index d5f8e84520b..5d6ae5e31d2 100644 --- a/libraries/ghci/GHCi/Message.hs +++ b/libraries/ghci/GHCi/Message.hs @@ -239,7 +239,7 @@ data QResult a -- ^ RunTH called 'fail' deriving (Generic, Show) -instance Binary a => Binary (QResult a) +instinst Binary a => Binary (QResult a) -- | Messages sent back to GHC from GHCi.TH, to implement the methods @@ -350,7 +350,7 @@ data EvalOpts = EvalOpts } deriving (Generic, Show) -instance Binary EvalOpts +instinst Binary EvalOpts data ResumeContext a = ResumeContext { resumeBreakMVar :: MVar () @@ -368,7 +368,7 @@ data EvalExpr a | EvalApp (EvalExpr a) (EvalExpr a) deriving (Generic, Show) -instance Binary a => Binary (EvalExpr a) +instinst Binary a => Binary (EvalExpr a) type EvalStatus a = EvalStatus_ a a @@ -382,14 +382,14 @@ data EvalStatus_ a b (RemotePtr CostCentreStack) -- Cost centre stack deriving (Generic, Show) -instance Binary a => Binary (EvalStatus_ a b) +instinst Binary a => Binary (EvalStatus_ a b) data EvalResult a = EvalException SerializableException | EvalSuccess a deriving (Generic, Show) -instance Binary a => Binary (EvalResult a) +instinst Binary a => Binary (EvalResult a) -- SomeException can't be serialized because it contains dynamic -- types. However, we do very limited things with the exceptions that @@ -419,20 +419,20 @@ fromSerializableException EUserInterrupt = toException UserInterrupt fromSerializableException (EExitCode c) = toException c fromSerializableException (EOtherException str) = toException (ErrorCall str) -instance Binary ExitCode -instance Binary SerializableException +instinst Binary ExitCode +instinst Binary SerializableException data THResult a = THException String | THComplete a deriving (Generic, Show) -instance Binary a => Binary (THResult a) +instinst Binary a => Binary (THResult a) data THResultType = THExp | THPat | THType | THDec | THAnnWrapper deriving (Enum, Show, Generic) -instance Binary THResultType +instinst Binary THResultType -- | The server-side Template Haskell state. This is created by the -- StartTH message. A new one is created per module that GHC @@ -449,29 +449,29 @@ instance Show QState where show _ = "" -- Orphan instances of Binary for Ptr / FunPtr by conversion to Word64. -- This is to support Binary StgInfoTable which includes these. -instance Binary (Ptr a) where +instinst Binary (Ptr a) where put p = put (fromIntegral (ptrToWordPtr p) :: Word64) get = (wordPtrToPtr . fromIntegral) <$> (get :: Get Word64) -instance Binary (FunPtr a) where +instinst Binary (FunPtr a) where put = put . castFunPtrToPtr get = castPtrToFunPtr <$> get -- Binary instances to support the GetClosure message #if MIN_VERSION_ghc_heap(8,11,0) -instance Binary Heap.StgTSOProfInfo -instance Binary Heap.CostCentreStack -instance Binary Heap.CostCentre -instance Binary Heap.IndexTable -instance Binary Heap.WhatNext -instance Binary Heap.WhyBlocked -instance Binary Heap.TsoFlags +instinst Binary Heap.StgTSOProfInfo +instinst Binary Heap.CostCentreStack +instinst Binary Heap.CostCentre +instinst Binary Heap.IndexTable +instinst Binary Heap.WhatNext +instinst Binary Heap.WhyBlocked +instinst Binary Heap.TsoFlags #endif -instance Binary Heap.StgInfoTable -instance Binary Heap.ClosureType -instance Binary Heap.PrimType -instance Binary a => Binary (Heap.GenClosure a) +instinst Binary Heap.StgInfoTable +instinst Binary Heap.ClosureType +instinst Binary Heap.PrimType +instinst Binary a => Binary (Heap.GenClosure a) data Msg = forall a . (Binary a, Show a) => Msg (Message a) diff --git a/libraries/ghci/GHCi/RemoteTypes.hs b/libraries/ghci/GHCi/RemoteTypes.hs index bbd7d32bed0..6f23fa74427 100644 --- a/libraries/ghci/GHCi/RemoteTypes.hs +++ b/libraries/ghci/GHCi/RemoteTypes.hs @@ -48,7 +48,7 @@ castRemotePtr :: RemotePtr a -> RemotePtr b castRemotePtr (RemotePtr a) = RemotePtr a deriving instance Show (RemotePtr a) -deriving instance Binary (RemotePtr a) +deriving instinst Binary (RemotePtr a) deriving instance NFData (RemotePtr a) -- ----------------------------------------------------------------------------- diff --git a/libraries/ghci/GHCi/ResolvedBCO.hs b/libraries/ghci/GHCi/ResolvedBCO.hs index 5dda6f60531..55984ce02ca 100644 --- a/libraries/ghci/GHCi/ResolvedBCO.hs +++ b/libraries/ghci/GHCi/ResolvedBCO.hs @@ -50,7 +50,7 @@ data ResolvedBCO -- Note, that we do encode the endianness, however there is no support for mixed -- endianness setups. This is primarily to ensure that ghc and iserv share the -- same endianness. -instance Binary ResolvedBCO where +instinst Binary ResolvedBCO where put ResolvedBCO{..} = do put resolvedBCOIsLE put resolvedBCOArity @@ -74,4 +74,4 @@ data ResolvedBCOPtr -- ^ Resolves to the MutableArray# inside the BreakArray deriving (Generic, Show) -instance Binary ResolvedBCOPtr +instinst Binary ResolvedBCOPtr diff --git a/libraries/ghci/GHCi/TH/Binary.hs b/libraries/ghci/GHCi/TH/Binary.hs index 236229a9dfe..de912f32423 100644 --- a/libraries/ghci/GHCi/TH/Binary.hs +++ b/libraries/ghci/GHCi/TH/Binary.hs @@ -16,67 +16,67 @@ import qualified Language.Haskell.TH as TH import qualified Language.Haskell.TH.Syntax as TH -- Put these in a separate module because they take ages to compile -instance Binary TH.Loc -instance Binary TH.Name -instance Binary TH.ModName -instance Binary TH.NameFlavour -instance Binary TH.PkgName -instance Binary TH.NameSpace -instance Binary TH.Module -instance Binary TH.Info -instance Binary TH.Type -instance Binary TH.TyLit -instance Binary TH.Specificity -instance Binary flag => Binary (TH.TyVarBndr flag) -instance Binary TH.Role -instance Binary TH.Lit -instance Binary TH.Range -instance Binary TH.Stmt -instance Binary TH.Pat -instance Binary TH.Exp -instance Binary TH.Dec -instance Binary TH.Overlap -instance Binary TH.DerivClause -instance Binary TH.DerivStrategy -instance Binary TH.Guard -instance Binary TH.Body -instance Binary TH.Match -instance Binary TH.Fixity -instance Binary TH.TySynEqn -instance Binary TH.FunDep -instance Binary TH.AnnTarget -instance Binary TH.RuleBndr -instance Binary TH.Phases -instance Binary TH.RuleMatch -instance Binary TH.Inline -instance Binary TH.Pragma -instance Binary TH.Safety -instance Binary TH.Callconv -instance Binary TH.Foreign -instance Binary TH.Bang -instance Binary TH.SourceUnpackedness -instance Binary TH.SourceStrictness -instance Binary TH.DecidedStrictness -instance Binary TH.FixityDirection -instance Binary TH.OccName -instance Binary TH.Con -instance Binary TH.AnnLookup -instance Binary TH.ModuleInfo -instance Binary TH.Clause -instance Binary TH.InjectivityAnn -instance Binary TH.FamilyResultSig -instance Binary TH.TypeFamilyHead -instance Binary TH.PatSynDir -instance Binary TH.PatSynArgs -instance Binary TH.DocLoc +instinst Binary TH.Loc +instinst Binary TH.Name +instinst Binary TH.ModName +instinst Binary TH.NameFlavour +instinst Binary TH.PkgName +instinst Binary TH.NameSpace +instinst Binary TH.Module +instinst Binary TH.Info +instinst Binary TH.Type +instinst Binary TH.TyLit +instinst Binary TH.Specificity +instinst Binary flag => Binary (TH.TyVarBndr flag) +instinst Binary TH.Role +instinst Binary TH.Lit +instinst Binary TH.Range +instinst Binary TH.Stmt +instinst Binary TH.Pat +instinst Binary TH.Exp +instinst Binary TH.Dec +instinst Binary TH.Overlap +instinst Binary TH.DerivClause +instinst Binary TH.DerivStrategy +instinst Binary TH.Guard +instinst Binary TH.Body +instinst Binary TH.Match +instinst Binary TH.Fixity +instinst Binary TH.TySynEqn +instinst Binary TH.FunDep +instinst Binary TH.AnnTarget +instinst Binary TH.RuleBndr +instinst Binary TH.Phases +instinst Binary TH.RuleMatch +instinst Binary TH.Inline +instinst Binary TH.Pragma +instinst Binary TH.Safety +instinst Binary TH.Callconv +instinst Binary TH.Foreign +instinst Binary TH.Bang +instinst Binary TH.SourceUnpackedness +instinst Binary TH.SourceStrictness +instinst Binary TH.DecidedStrictness +instinst Binary TH.FixityDirection +instinst Binary TH.OccName +instinst Binary TH.Con +instinst Binary TH.AnnLookup +instinst Binary TH.ModuleInfo +instinst Binary TH.Clause +instinst Binary TH.InjectivityAnn +instinst Binary TH.FamilyResultSig +instinst Binary TH.TypeFamilyHead +instinst Binary TH.PatSynDir +instinst Binary TH.PatSynArgs +instinst Binary TH.DocLoc -- We need Binary TypeRep for serializing annotations -instance Binary Serialized where +instinst Binary Serialized where put (Serialized tyrep wds) = put tyrep >> put (B.pack wds) get = Serialized <$> get <*> (B.unpack <$> get) -instance Binary TH.Bytes where +instinst Binary TH.Bytes where put (TH.Bytes ptr off sz) = put bs where bs = B.PS ptr (fromIntegral off) (fromIntegral sz) get = do From dae79164b82565fcd745c84f64ea0ac1f7e23333 Mon Sep 17 00:00:00 2001 From: Alex Hubers Date: Thu, 12 May 2022 10:38:20 -0500 Subject: [PATCH 2/4] Add start of README, collect total metrics --- impact/README.md | 26 ++ impact/measure-impact.sh | 15 - impact/report.csv | 690 +++++++++++++++++++-------------------- impact/tocsv.py | 18 +- 4 files changed, 386 insertions(+), 363 deletions(-) create mode 100644 impact/README.md diff --git a/impact/README.md b/impact/README.md new file mode 100644 index 00000000000..38a9e3e8fe6 --- /dev/null +++ b/impact/README.md @@ -0,0 +1,26 @@ +## How-to +1. Be on Linux / Mac. You'll need + [pcregrep](https://www.pcre.org/original/doc/html/pcregrep.html) and python3. +1. Edit `measure-impact.sh` and `tocsv.py` and add an absolute path to your GHC installation. +1. Running `./measure-impact.sh` will build `.raw` files with counts per file, + indexed by type and library. `python3 tocsv.py` will aggregate these files + into one `./report.csv`. + + +## Counting total instances/classes/terms + +Haskell is very nice to us in that all instance, class, and term +declarations must/should be at start of line. So grepping for totals +is fairly easy. + +```bash +# instances +pcregrep --include "\.hs$" -r "^instance" /path/to/ghc/compiler/GHC | wc -l +pcregrep --include "\.hs$" -r "^instance" /path/to/ghc/libraries/ | wc -l + +pcregrep --include "\.hs$" -r "^class" /path/to/ghc/compiler/GHC | wc -l +pcregrep --include "\.hs$" -r "^class" /path/to/ghc/libraries/ | wc -l + +pcregrep --include "\.hs$" -r "^(\w+\s+::)" /path/to/ghc/compiler/GHC | wc -l +pcregrep --include "\.hs$" -r "^(\w+\s+::)" /path/to/ghc/libraries/ | wc -l +``` diff --git a/impact/measure-impact.sh b/impact/measure-impact.sh index 4fb1fadfe26..8383caf8e49 100755 --- a/impact/measure-impact.sh +++ b/impact/measure-impact.sh @@ -54,19 +54,4 @@ measure2 libraries "$TERM" "$TOTAL" ./libraries/terms/total.raw measure2 libraries "$TERM" "$AT" ./libraries/terms/at.raw - - ## -------------------------------------------------------------------------------- - - -# measure2 compiler/GHC/ "$INSTANCE" ./compiler/instances.raw -# measure2 compiler/GHC/ "$CLASS" ./compiler/classes.raw - -# pcregrep --include "\.hs$" -Mcr "instance (\w|,|\(|\s|\n)*#if MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/instances.impact_log; -# pcregrep --include "\.hs$" -Mcr "class (\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/classes.impact_log; -# pcregrep --include "\.hs$" -Mcr "^(\w+\s+::)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/top_level_terms.impact_log; -# pcregrep --include "\.hs$" -Mcr "(\w+\s+::)(\w|,|\(|\s|\n)*#if\s+MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" ./ | grep -v ':0$' > ./impact/all_terms.impact_log; -# -# cd ./impact; -# python tocsv.py; -# diff --git a/impact/report.csv b/impact/report.csv index 92e9c539a12..187fa5f5d52 100644 --- a/impact/report.csv +++ b/impact/report.csv @@ -1,505 +1,505 @@ full_path,package,module,type,ats,totals,WDTs compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,classes,1,0,0 -compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,instances,1,0,0 -compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,terms,1,0,0 -compiler/GHC/Driver/Session.hs,GHC,Session.hs,classes,1,4,0 -compiler/GHC/Driver/Session.hs,GHC,Session.hs,instances,1,4,0 -compiler/GHC/Driver/Session.hs,GHC,Session.hs,terms,1,4,0 -compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,classes,1,0,1 -compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,instances,1,0,1 -compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,terms,1,0,1 +compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,instances,0,0,0 +compiler/GHC/CmmToAsm/PIC.hs,GHC,PIC.hs,terms,0,0,0 +compiler/GHC/Driver/Session.hs,GHC,Session.hs,classes,1,0,0 +compiler/GHC/Driver/Session.hs,GHC,Session.hs,instances,0,4,0 +compiler/GHC/Driver/Session.hs,GHC,Session.hs,terms,0,4,0 +compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,classes,1,0,0 +compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,instances,0,0,0 +compiler/GHC/Driver/Hooks.hs,GHC,Hooks.hs,terms,0,0,1 compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,classes,1,0,0 -compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,instances,1,0,0 -compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,terms,1,0,0 -compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,classes,1,1,0 -compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,instances,1,1,0 -compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,terms,1,1,0 +compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,instances,0,0,0 +compiler/GHC/Parser/PostProcess.hs,GHC,PostProcess.hs,terms,0,0,0 +compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,classes,1,0,0 +compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,instances,0,1,0 +compiler/GHC/Types/TyThing.hs,GHC,TyThing.hs,terms,0,0,0 compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,classes,1,0,0 -compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,instances,1,0,0 -compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,terms,1,0,0 +compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,instances,0,0,0 +compiler/GHC/Types/Unique/Supply.hs,GHC,Supply.hs,terms,0,0,0 compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,classes,1,0,0 -compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,instances,1,0,0 -compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,terms,1,0,0 +compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,instances,0,0,0 +compiler/GHC/Utils/Logger.hs,GHC,Logger.hs,terms,0,0,0 compiler/GHC/Unit/Module.hs,GHC,Module.hs,classes,1,0,0 -compiler/GHC/Unit/Module.hs,GHC,Module.hs,instances,1,0,0 -compiler/GHC/Unit/Module.hs,GHC,Module.hs,terms,1,0,0 +compiler/GHC/Unit/Module.hs,GHC,Module.hs,instances,0,0,0 +compiler/GHC/Unit/Module.hs,GHC,Module.hs,terms,0,0,0 compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,classes,0,1,0 -compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,instances,0,1,0 -compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,terms,0,1,0 -compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,classes,0,9,0 +compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,instances,0,0,0 +compiler/GHC/Driver/Pipeline/Monad.hs,GHC,Monad.hs,terms,0,0,0 +compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,classes,0,1,0 compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,instances,0,9,0 -compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,terms,0,9,0 -compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,classes,0,0,26 -compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,instances,0,0,26 +compiler/GHC/Driver/Monad.hs,GHC,Monad.hs,terms,0,0,0 +compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,classes,0,0,1 +compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,instances,0,0,0 compiler/GHC/Hs/Utils.hs,GHC,Utils.hs,terms,0,0,26 -compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,classes,1,0,10 -compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,instances,1,0,10 +compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,classes,0,0,0 +compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,instances,10,0,24 compiler/GHC/Hs/Decls.hs,GHC,Decls.hs,terms,1,0,10 -compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,classes,2,0,2 -compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,instances,2,0,2 +compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,classes,0,0,0 +compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,instances,4,0,7 compiler/GHC/Hs/Binds.hs,GHC,Binds.hs,terms,2,0,2 -compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,classes,0,1,0 -compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,instances,0,1,0 +compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,classes,0,0,0 +compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,instances,0,3,0 compiler/GHC/Driver/CmdLine.hs,GHC,CmdLine.hs,terms,0,1,0 -compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,classes,3,10,3 -compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,instances,3,10,3 +compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,classes,0,0,0 +compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,instances,0,5,1 compiler/GHC/Data/TrieMap.hs,GHC,TrieMap.hs,terms,3,10,3 -compiler/GHC/Data/Stream.hs,GHC,Stream.hs,classes,2,4,0 -compiler/GHC/Data/Stream.hs,GHC,Stream.hs,instances,2,4,0 +compiler/GHC/Data/Stream.hs,GHC,Stream.hs,classes,0,0,0 +compiler/GHC/Data/Stream.hs,GHC,Stream.hs,instances,0,4,0 compiler/GHC/Data/Stream.hs,GHC,Stream.hs,terms,2,4,0 -compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,classes,0,1,0 +compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,classes,0,0,0 compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,instances,0,1,0 compiler/GHC/Cmm/Dataflow/Graph.hs,GHC,Graph.hs,terms,0,1,0 -compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,classes,0,2,19 -compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,instances,0,2,19 -compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,terms,0,2,19 -compiler/GHC/Parser/Types.hs,GHC,Types.hs,classes,0,0,1 +compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,classes,0,0,0 +compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,instances,0,0,19 +compiler/GHC/Iface/Ext/Ast.hs,GHC,Ast.hs,terms,0,2,0 +compiler/GHC/Parser/Types.hs,GHC,Types.hs,classes,0,0,0 compiler/GHC/Parser/Types.hs,GHC,Types.hs,instances,0,0,1 -compiler/GHC/Parser/Types.hs,GHC,Types.hs,terms,0,0,1 -compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,classes,0,0,31 -compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,instances,0,0,31 +compiler/GHC/Parser/Types.hs,GHC,Types.hs,terms,0,0,0 +compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,classes,0,0,0 +compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,instances,0,0,13 compiler/GHC/Hs/Expr.hs,GHC,Expr.hs,terms,0,0,31 -compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,classes,0,0,3 -compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,instances,0,0,3 +compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,classes,0,0,0 +compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,instances,0,0,1 compiler/GHC/Hs/Pat.hs,GHC,Pat.hs,terms,0,0,3 -compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,classes,0,0,1 +compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,classes,0,0,0 compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,instances,0,0,1 -compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,terms,0,0,1 -compiler/GHC/Hs/Type.hs,GHC,Type.hs,classes,0,0,11 +compiler/GHC/Hs/Lit.hs,GHC,Lit.hs,terms,0,0,0 +compiler/GHC/Hs/Type.hs,GHC,Type.hs,classes,0,0,0 compiler/GHC/Hs/Type.hs,GHC,Type.hs,instances,0,0,11 compiler/GHC/Hs/Type.hs,GHC,Type.hs,terms,0,0,11 -compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,classes,0,0,2 +compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,classes,0,0,0 compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,instances,0,0,2 -compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,terms,0,0,2 -compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,classes,0,1,1 -compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,instances,0,1,1 +compiler/GHC/Tc/Gen/Head.hs,GHC,Head.hs,terms,0,0,0 +compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,classes,0,0,0 +compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,instances,0,0,1 compiler/GHC/Tc/Utils/Env.hs,GHC,Env.hs,terms,0,1,1 -compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,classes,1,1,0 -compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,instances,1,1,0 +compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,classes,0,0,0 +compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,instances,0,0,0 compiler/GHC/HsToCore/Quote.hs,GHC,Quote.hs,terms,1,1,0 -compiler/GHC/Data/Bag.hs,GHC,Bag.hs,classes,3,2,0 -compiler/GHC/Data/Bag.hs,GHC,Bag.hs,instances,3,2,0 +compiler/GHC/Data/Bag.hs,GHC,Bag.hs,classes,0,0,0 +compiler/GHC/Data/Bag.hs,GHC,Bag.hs,instances,0,0,0 compiler/GHC/Data/Bag.hs,GHC,Bag.hs,terms,3,2,0 -compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,classes,4,0,0 -compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,instances,4,0,0 +compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,classes,0,0,0 +compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,instances,0,0,0 compiler/GHC/StgToCmm/Foreign.hs,GHC,Foreign.hs,terms,4,0,0 -compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,classes,1,0,0 -compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,instances,1,0,0 +compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,classes,0,0,0 +compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,instances,0,0,0 compiler/GHC/StgToCmm/Monad.hs,GHC,Monad.hs,terms,1,0,0 -compiler/GHC/Types/Id.hs,GHC,Id.hs,classes,2,0,0 -compiler/GHC/Types/Id.hs,GHC,Id.hs,instances,2,0,0 +compiler/GHC/Types/Id.hs,GHC,Id.hs,classes,0,0,0 +compiler/GHC/Types/Id.hs,GHC,Id.hs,instances,0,0,0 compiler/GHC/Types/Id.hs,GHC,Id.hs,terms,2,0,0 -compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,classes,1,0,0 -compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,instances,1,0,0 +compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,classes,0,0,0 +compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,instances,0,0,0 compiler/GHC/Utils/Misc.hs,GHC,Misc.hs,terms,1,0,0 -compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,classes,1,0,0 -compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,instances,1,0,0 +compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,classes,0,0,0 +compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,instances,0,0,0 compiler/GHC/Cmm/BlockId.hs,GHC,BlockId.hs,terms,1,0,0 -compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,classes,0,5,0 -compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,instances,0,5,0 +compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,classes,0,0,0 +compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,instances,0,0,0 compiler/GHC/Iface/Ext/Utils.hs,GHC,Utils.hs,terms,0,5,0 -compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,classes,0,3,0 -compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,instances,0,3,0 +compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,classes,0,0,0 +compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,instances,0,0,0 compiler/GHC/CmmToAsm/Reg/Liveness.hs,GHC,Liveness.hs,terms,0,3,0 -compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,classes,0,3,0 -compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,instances,0,3,0 +compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,classes,0,0,0 +compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,instances,0,0,0 compiler/GHC/HsToCore/Pmc/Solver.hs,GHC,Solver.hs,terms,0,3,0 -compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,classes,0,1,1 -compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,instances,0,1,1 +compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,classes,0,0,0 +compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,instances,0,0,0 compiler/GHC/HsToCore/Docs.hs,GHC,Docs.hs,terms,0,1,1 -compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,classes,0,1,0 -compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,instances,0,1,0 +compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,classes,0,0,0 +compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,instances,0,0,0 compiler/GHC/HsToCore/Monad.hs,GHC,Monad.hs,terms,0,1,0 -compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,classes,0,4,0 -compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,instances,0,4,0 +compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,classes,0,0,0 +compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,instances,0,0,0 compiler/GHC/Hs/Dump.hs,GHC,Dump.hs,terms,0,4,0 -compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,classes,0,1,0 -compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,instances,0,1,0 +compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,classes,0,0,0 +compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,instances,0,0,0 compiler/GHC/Tc/Types/EvTerm.hs,GHC,EvTerm.hs,terms,0,1,0 -compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,classes,0,2,0 -compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,instances,0,2,0 +compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,classes,0,0,0 +compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,instances,0,0,0 compiler/GHC/Runtime/Interpreter.hs,GHC,Interpreter.hs,terms,0,2,0 -compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,classes,0,3,0 -compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,instances,0,3,0 +compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,classes,0,0,0 +compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,instances,0,0,0 compiler/GHC/Runtime/Heap/Inspect.hs,GHC,Inspect.hs,terms,0,3,0 -compiler/GHC/Core/Type.hs,GHC,Type.hs,classes,0,2,0 -compiler/GHC/Core/Type.hs,GHC,Type.hs,instances,0,2,0 +compiler/GHC/Core/Type.hs,GHC,Type.hs,classes,0,0,0 +compiler/GHC/Core/Type.hs,GHC,Type.hs,instances,0,0,0 compiler/GHC/Core/Type.hs,GHC,Type.hs,terms,0,2,0 -compiler/GHC/Core/Make.hs,GHC,Make.hs,classes,0,1,0 -compiler/GHC/Core/Make.hs,GHC,Make.hs,instances,0,1,0 +compiler/GHC/Core/Make.hs,GHC,Make.hs,classes,0,0,0 +compiler/GHC/Core/Make.hs,GHC,Make.hs,instances,0,0,0 compiler/GHC/Core/Make.hs,GHC,Make.hs,terms,0,1,0 -compiler/GHC/Utils/Error.hs,GHC,Error.hs,classes,0,2,0 -compiler/GHC/Utils/Error.hs,GHC,Error.hs,instances,0,2,0 +compiler/GHC/Utils/Error.hs,GHC,Error.hs,classes,0,0,0 +compiler/GHC/Utils/Error.hs,GHC,Error.hs,instances,0,0,0 compiler/GHC/Utils/Error.hs,GHC,Error.hs,terms,0,2,0 -compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,classes,0,1,0 -compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,instances,0,1,0 +compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,classes,0,0,0 +compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,instances,0,0,0 compiler/GHC/Utils/Panic.hs,GHC,Panic.hs,terms,0,1,0 -compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,classes,0,6,0 -compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,instances,0,6,0 +compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,classes,0,0,0 +compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,instances,0,0,0 compiler/GHC/Utils/Monad.hs,GHC,Monad.hs,terms,0,6,0 -compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,classes,0,1,0 -compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,instances,0,1,0 +compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,classes,0,0,0 +compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,instances,0,0,0 compiler/GHC/Stg/Subst.hs,GHC,Subst.hs,terms,0,1,0 -compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,classes,0,2,1 -compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,instances,0,2,1 +compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,classes,0,0,0 +compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,instances,0,0,0 compiler/GHC/Stg/Lift/Monad.hs,GHC,Monad.hs,terms,0,2,1 -compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,classes,0,16,0 -compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,instances,0,16,0 +compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,classes,0,0,0 +compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,instances,0,0,0 compiler/GHC/Cmm/Dataflow/Block.hs,GHC,Block.hs,terms,0,16,0 -compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,classes,0,2,0 -compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,instances,0,2,0 +compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,classes,0,0,0 +compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,instances,0,0,0 compiler/GHC/Cmm/Dataflow.hs,GHC,Dataflow.hs,terms,0,2,0 -compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,classes,0,0,4 -compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,instances,0,0,4 +compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,classes,0,0,0 +compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,instances,0,0,0 compiler/GHC/ByteCode/Instr.hs,GHC,Instr.hs,terms,0,0,4 -compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,classes,0,0,4 -compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,instances,0,0,4 +compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,classes,0,0,0 +compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,instances,0,0,0 compiler/GHC/Tc/Gen/Match.hs,GHC,Match.hs,terms,0,0,4 -compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,classes,0,0,1 -compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,instances,0,0,1 +compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,classes,0,0,0 +compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,instances,0,0,0 compiler/GHC/Tc/Gen/Bind.hs,GHC,Bind.hs,terms,0,0,1 -compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,classes,0,0,1 -compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,instances,0,0,1 +compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,classes,0,0,0 +compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,instances,0,0,0 compiler/GHC/Tc/Gen/Annotation.hs,GHC,Annotation.hs,terms,0,0,1 -compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,classes,0,0,1 -compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,instances,0,0,1 +compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,classes,0,0,0 +compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,instances,0,0,0 compiler/GHC/Tc/Utils/Zonk.hs,GHC,Zonk.hs,terms,0,0,1 -compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,classes,0,0,4 -compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,instances,0,0,4 +compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,classes,0,0,0 +compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,instances,0,0,0 compiler/GHC/Rename/Expr.hs,GHC,Expr.hs,terms,0,0,4 -compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,classes,0,0,4 -compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,instances,0,0,4 +compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,classes,0,0,0 +compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,instances,0,0,0 compiler/GHC/Rename/Bind.hs,GHC,Bind.hs,terms,0,0,4 -compiler/GHC/Rename/Module.hs,GHC,Module.hs,classes,0,0,1 -compiler/GHC/Rename/Module.hs,GHC,Module.hs,instances,0,0,1 +compiler/GHC/Rename/Module.hs,GHC,Module.hs,classes,0,0,0 +compiler/GHC/Rename/Module.hs,GHC,Module.hs,instances,0,0,0 compiler/GHC/Rename/Module.hs,GHC,Module.hs,terms,0,0,1 -compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,classes,0,0,5 -compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,instances,0,0,5 +compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,classes,0,0,0 +compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,instances,0,0,0 compiler/GHC/Stg/Syntax.hs,GHC,Syntax.hs,terms,0,0,5 -compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,classes,0,0,1 -compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,instances,0,0,1 +compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,classes,0,0,0 +compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,instances,0,0,0 compiler/GHC/Stg/Lint.hs,GHC,Lint.hs,terms,0,0,1 -compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,classes,0,0,2 -compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,instances,0,0,2 +compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,classes,0,0,0 +compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,instances,0,0,0 compiler/GHC/Stg/Unarise.hs,GHC,Unarise.hs,terms,0,0,2 -compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,classes,0,0,1 -compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,instances,0,0,1 +compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,classes,0,0,0 +compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,instances,0,0,0 compiler/GHC/Cmm/Ppr.hs,GHC,Ppr.hs,terms,0,0,1 libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,classes,2,0,0 libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,instances,2,0,0 -libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,terms,2,0,0 -libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,classes,1,4,0 -libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,instances,1,4,0 -libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,terms,1,4,0 -libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,classes,1,2,0 -libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,instances,1,2,0 +libraries/ghc-prim/GHC/Types.hs,ghc-prim,Types.hs,terms,0,0,0 +libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,classes,2,0,0 +libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,instances,0,4,0 +libraries/haskeline/System/Console/Haskeline/Monads.hs,haskeline,Monads.hs,terms,1,0,0 +libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,classes,2,0,0 +libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,instances,1,0,0 libraries/haskeline/System/Console/Haskeline/Term.hs,haskeline,Term.hs,terms,1,2,0 -libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,classes,1,13,0 -libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,instances,1,13,0 -libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,terms,1,13,0 -libraries/array/Data/Array/Base.hs,array,Base.hs,classes,3,5,0 -libraries/array/Data/Array/Base.hs,array,Base.hs,instances,3,5,0 +libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,classes,1,0,0 +libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,instances,0,13,0 +libraries/mtl/Control/Monad/Reader/Class.hs,mtl,Class.hs,terms,0,0,0 +libraries/array/Data/Array/Base.hs,array,Base.hs,classes,1,0,0 +libraries/array/Data/Array/Base.hs,array,Base.hs,instances,0,0,0 libraries/array/Data/Array/Base.hs,array,Base.hs,terms,3,5,0 -libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,classes,0,1,0 +libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,classes,0,2,0 libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,instances,0,1,0 libraries/template-haskell/Language/Haskell/TH/Syntax.hs,template-haskell,Syntax.hs,terms,0,1,0 -libraries/base/Control/Arrow.hs,base,Arrow.hs,classes,0,11,0 +libraries/base/Control/Arrow.hs,base,Arrow.hs,classes,0,2,0 libraries/base/Control/Arrow.hs,base,Arrow.hs,instances,0,11,0 -libraries/base/Control/Arrow.hs,base,Arrow.hs,terms,0,11,0 +libraries/base/Control/Arrow.hs,base,Arrow.hs,terms,0,0,0 libraries/base/Control/Category.hs,base,Category.hs,classes,0,1,0 -libraries/base/Control/Category.hs,base,Category.hs,instances,0,1,0 -libraries/base/Control/Category.hs,base,Category.hs,terms,0,1,0 +libraries/base/Control/Category.hs,base,Category.hs,instances,0,0,0 +libraries/base/Control/Category.hs,base,Category.hs,terms,0,0,0 libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,classes,0,1,0 -libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,instances,0,1,0 -libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,terms,0,1,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,classes,0,4,0 +libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,instances,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Parsec.hs,Cabal,Parsec.hs,terms,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,classes,0,1,0 libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,instances,0,4,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,terms,0,4,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Semigroup.hs,Cabal,Semigroup.hs,terms,0,0,0 libraries/time/lib/Data/Format.hs,time,Format.hs,classes,0,1,0 -libraries/time/lib/Data/Format.hs,time,Format.hs,instances,0,1,0 -libraries/time/lib/Data/Format.hs,time,Format.hs,terms,0,1,0 +libraries/time/lib/Data/Format.hs,time,Format.hs,instances,0,0,0 +libraries/time/lib/Data/Format.hs,time,Format.hs,terms,0,0,0 libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,classes,0,0,1 -libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,instances,0,0,1 -libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,terms,0,0,1 -libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,classes,7,9,0 -libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,instances,7,9,0 -libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,terms,7,9,0 -libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,classes,7,9,0 -libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,instances,7,9,0 -libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,terms,7,9,0 -libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,classes,1,12,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,instances,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Graph.hs,Cabal,Graph.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,instances,4,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Lazy.hs,transformers,Lazy.hs,terms,7,0,0 +libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,instances,4,9,0 +libraries/transformers/Control/Monad/Trans/Writer/Strict.hs,transformers,Strict.hs,terms,7,0,0 +libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,classes,0,0,0 libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,instances,1,12,0 -libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,terms,1,12,0 -libraries/base/Control/Monad/Fix.hs,base,Fix.hs,classes,0,1,0 +libraries/mtl/Control/Monad/Cont/Class.hs,mtl,Class.hs,terms,0,0,0 +libraries/base/Control/Monad/Fix.hs,base,Fix.hs,classes,0,0,0 libraries/base/Control/Monad/Fix.hs,base,Fix.hs,instances,0,1,0 -libraries/base/Control/Monad/Fix.hs,base,Fix.hs,terms,0,1,0 -libraries/base/Control/Monad/Zip.hs,base,Zip.hs,classes,0,1,0 +libraries/base/Control/Monad/Fix.hs,base,Fix.hs,terms,0,0,0 +libraries/base/Control/Monad/Zip.hs,base,Zip.hs,classes,0,0,0 libraries/base/Control/Monad/Zip.hs,base,Zip.hs,instances,0,1,0 -libraries/base/Control/Monad/Zip.hs,base,Zip.hs,terms,0,1,0 -libraries/base/Control/Applicative.hs,base,Applicative.hs,classes,0,3,0 +libraries/base/Control/Monad/Zip.hs,base,Zip.hs,terms,0,0,0 +libraries/base/Control/Applicative.hs,base,Applicative.hs,classes,0,0,0 libraries/base/Control/Applicative.hs,base,Applicative.hs,instances,0,3,0 -libraries/base/Control/Applicative.hs,base,Applicative.hs,terms,0,3,0 -libraries/base/Data/Functor/Compose.hs,base,Compose.hs,classes,0,14,0 +libraries/base/Control/Applicative.hs,base,Applicative.hs,terms,0,0,0 +libraries/base/Data/Functor/Compose.hs,base,Compose.hs,classes,0,0,0 libraries/base/Data/Functor/Compose.hs,base,Compose.hs,instances,0,14,0 -libraries/base/Data/Functor/Compose.hs,base,Compose.hs,terms,0,14,0 -libraries/base/Data/Functor/Classes.hs,base,Classes.hs,classes,0,2,0 +libraries/base/Data/Functor/Compose.hs,base,Compose.hs,terms,0,0,0 +libraries/base/Data/Functor/Classes.hs,base,Classes.hs,classes,0,0,0 libraries/base/Data/Functor/Classes.hs,base,Classes.hs,instances,0,2,0 -libraries/base/Data/Functor/Classes.hs,base,Classes.hs,terms,0,2,0 -libraries/base/Data/Functor/Product.hs,base,Product.hs,classes,0,17,0 +libraries/base/Data/Functor/Classes.hs,base,Classes.hs,terms,0,0,0 +libraries/base/Data/Functor/Product.hs,base,Product.hs,classes,0,0,0 libraries/base/Data/Functor/Product.hs,base,Product.hs,instances,0,17,0 -libraries/base/Data/Functor/Product.hs,base,Product.hs,terms,0,17,0 -libraries/base/Data/Functor/Sum.hs,base,Sum.hs,classes,0,11,0 +libraries/base/Data/Functor/Product.hs,base,Product.hs,terms,0,0,0 +libraries/base/Data/Functor/Sum.hs,base,Sum.hs,classes,0,0,0 libraries/base/Data/Functor/Sum.hs,base,Sum.hs,instances,0,11,0 -libraries/base/Data/Functor/Sum.hs,base,Sum.hs,terms,0,11,0 -libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,classes,1,6,0 -libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,instances,1,6,0 -libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,terms,1,6,0 -libraries/base/GHC/Generics.hs,base,Generics.hs,classes,0,9,0 +libraries/base/Data/Functor/Sum.hs,base,Sum.hs,terms,0,0,0 +libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,classes,0,0,0 +libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,instances,0,6,0 +libraries/base/Data/Functor/Contravariant.hs,base,Contravariant.hs,terms,1,0,0 +libraries/base/GHC/Generics.hs,base,Generics.hs,classes,0,0,0 libraries/base/GHC/Generics.hs,base,Generics.hs,instances,0,9,0 -libraries/base/GHC/Generics.hs,base,Generics.hs,terms,0,9,0 -libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,classes,0,2,0 +libraries/base/GHC/Generics.hs,base,Generics.hs,terms,0,0,0 +libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,classes,0,0,0 libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,instances,0,2,0 -libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,terms,0,2,0 -libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,classes,0,14,0 +libraries/transformers/Control/Applicative/Lift.hs,transformers,Lift.hs,terms,0,0,0 +libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,classes,0,0,0 libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,instances,0,14,0 -libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,terms,0,14,0 -libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,classes,0,9,0 +libraries/transformers/Control/Applicative/Backwards.hs,transformers,Backwards.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,instances,0,9,0 -libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,terms,0,9,0 -libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,classes,0,2,0 -libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,instances,0,2,0 +libraries/transformers/Control/Monad/Trans/List.hs,transformers,List.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,instances,0,9,0 libraries/transformers/Control/Monad/Trans/Maybe.hs,transformers,Maybe.hs,terms,0,2,0 -libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,classes,2,2,0 -libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,instances,2,2,0 +libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,instances,0,7,0 libraries/transformers/Control/Monad/Trans/State/Lazy.hs,transformers,Lazy.hs,terms,2,2,0 -libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,classes,0,2,0 -libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,instances,0,2,0 +libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,instances,0,7,0 libraries/transformers/Control/Monad/Trans/State/Strict.hs,transformers,Strict.hs,terms,0,2,0 -libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,classes,1,7,0 -libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,instances,1,7,0 -libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,terms,1,7,0 -libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,classes,1,2,0 -libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,instances,1,2,0 +libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,instances,0,7,0 +libraries/transformers/Control/Monad/Trans/Writer/CPS.hs,transformers,CPS.hs,terms,1,0,0 +libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,instances,0,9,0 libraries/transformers/Control/Monad/Trans/Except.hs,transformers,Except.hs,terms,1,2,0 -libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,classes,0,2,0 -libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,instances,0,2,0 +libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,instances,0,8,0 libraries/transformers/Control/Monad/Trans/Error.hs,transformers,Error.hs,terms,0,2,0 -libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,classes,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,instances,0,7,0 -libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,terms,0,7,0 -libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,classes,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/Lazy.hs,transformers,Lazy.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,instances,0,7,0 -libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,terms,0,7,0 -libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,classes,0,7,0 +libraries/transformers/Control/Monad/Trans/RWS/CPS.hs,transformers,CPS.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,instances,0,7,0 -libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,terms,0,7,0 -libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,classes,1,7,0 -libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,instances,1,7,0 -libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,terms,1,7,0 -libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,classes,0,1,0 +libraries/transformers/Control/Monad/Trans/RWS/Strict.hs,transformers,Strict.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,classes,0,0,0 +libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,instances,0,7,0 +libraries/transformers/Control/Monad/Trans/Accum.hs,transformers,Accum.hs,terms,1,0,0 +libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,instances,0,1,0 libraries/transformers/Control/Monad/Trans/Cont.hs,transformers,Cont.hs,terms,0,1,0 -libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,classes,0,6,0 +libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,instances,0,6,0 -libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,terms,0,6,0 -libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,classes,0,5,0 +libraries/transformers/Control/Monad/Trans/Select.hs,transformers,Select.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,instances,0,5,0 -libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,terms,0,5,0 -libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,classes,0,9,0 +libraries/transformers/Control/Monad/Trans/Reader.hs,transformers,Reader.hs,terms,0,0,0 +libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,classes,0,0,0 libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,instances,0,9,0 -libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,terms,0,9,0 -libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,classes,0,17,0 +libraries/transformers/Control/Monad/Trans/Identity.hs,transformers,Identity.hs,terms,0,0,0 +libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,classes,0,0,0 libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,instances,0,17,0 -libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,terms,0,17,0 -libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,classes,4,11,0 -libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,instances,4,11,0 +libraries/transformers/Data/Functor/Reverse.hs,transformers,Reverse.hs,terms,0,0,0 +libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,instances,0,7,0 libraries/containers/containers/src/Data/Map/Internal.hs,containers,Internal.hs,terms,4,11,0 -libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,classes,2,4,0 -libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,instances,2,4,0 +libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,instances,0,7,0 libraries/containers/containers/src/Data/IntMap/Internal.hs,containers,Internal.hs,terms,2,4,0 -libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,classes,4,11,0 -libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,instances,4,11,0 +libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,instances,0,7,0 libraries/containers/containers-tests/src/Data/Map/Internal.hs,containers,Internal.hs,terms,4,11,0 -libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,classes,2,4,0 -libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,instances,2,4,0 +libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,instances,0,7,0 libraries/containers/containers-tests/src/Data/IntMap/Internal.hs,containers,Internal.hs,terms,2,4,0 -libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,classes,6,9,0 -libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,instances,6,9,0 -libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,terms,6,9,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,classes,0,3,0 +libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,instances,0,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/CharParsing.hs,Cabal,CharParsing.hs,terms,6,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,classes,0,0,0 libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,instances,0,3,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,terms,0,3,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,classes,3,9,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,instances,3,9,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,terms,3,9,0 -libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,classes,0,2,0 -libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Prelude.hs,Cabal,Prelude.hs,terms,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,instances,0,9,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Parsing.hs,Cabal,Parsing.hs,terms,3,0,0 +libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,classes,0,0,0 +libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,instances,0,4,0 libraries/Cabal/cabal-install/src/Distribution/Client/IndexUtils/IndexState.hs,Cabal,IndexState.hs,terms,0,2,0 -libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,classes,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,classes,0,0,0 libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,instances,0,1,0 -libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,terms,0,1,0 -libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,classes,0,1,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/DescribedInstances.hs,Cabal,DescribedInstances.hs,terms,0,0,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,classes,0,0,0 libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,instances,0,1,0 -libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,terms,0,1,0 -libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,classes,0,10,0 +libraries/Cabal/cabal-install/tests/UnitTests/Distribution/Client/ArbitraryInstances.hs,Cabal,ArbitraryInstances.hs,terms,0,0,0 +libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,classes,0,0,0 libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,instances,0,10,0 -libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,terms,0,10,0 -libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,classes,0,11,0 +libraries/binary/src/Data/Binary/Generic.hs,binary,Generic.hs,terms,0,0,0 +libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,classes,0,0,0 libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,instances,0,11,0 -libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,terms,0,11,0 -libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,classes,0,13,0 -libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,instances,0,13,0 +libraries/deepseq/Control/DeepSeq.hs,deepseq,DeepSeq.hs,terms,0,0,0 +libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,instances,0,4,0 libraries/haskeline/System/Console/Haskeline/InputT.hs,haskeline,InputT.hs,terms,0,13,0 -libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,classes,0,10,0 -libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,instances,0,10,0 +libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,instances,0,3,0 libraries/haskeline/System/Console/Haskeline/Command.hs,haskeline,Command.hs,terms,0,10,0 -libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,classes,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,classes,0,0,0 libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,instances,0,2,0 libraries/haskeline/System/Console/Haskeline/Backend/Terminfo.hs,haskeline,Terminfo.hs,terms,0,2,0 -libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,classes,0,2,0 +libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,classes,0,0,0 libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,instances,0,2,0 libraries/haskeline/System/Console/Haskeline/Backend/DumbTerm.hs,haskeline,DumbTerm.hs,terms,0,2,0 -libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,classes,0,33,0 -libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,instances,0,33,0 +libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,classes,0,0,0 +libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,instances,0,13,0 libraries/parsec/src/Text/Parsec/Prim.hs,parsec,Prim.hs,terms,0,33,0 -libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,classes,1,13,0 -libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,instances,1,13,0 -libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,terms,1,13,0 -libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,classes,2,11,0 -libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,instances,2,11,0 -libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,terms,2,11,0 -libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,classes,0,6,0 +libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,classes,0,0,0 +libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,instances,0,13,0 +libraries/mtl/Control/Monad/State/Class.hs,mtl,Class.hs,terms,1,0,0 +libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,classes,0,0,0 +libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,instances,0,11,0 +libraries/mtl/Control/Monad/Writer/Class.hs,mtl,Class.hs,terms,2,0,0 +libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,classes,0,0,0 libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,instances,0,6,0 -libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,terms,0,6,0 -libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,classes,0,12,0 +libraries/mtl/Control/Monad/RWS/Class.hs,mtl,Class.hs,terms,0,0,0 +libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,classes,0,0,0 libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,instances,0,12,0 -libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,terms,0,12,0 -libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,classes,0,15,0 +libraries/mtl/Control/Monad/Error/Class.hs,mtl,Class.hs,terms,0,0,0 +libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,classes,0,0,0 libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,instances,0,15,0 -libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,terms,0,15,0 -libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,classes,5,36,0 -libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,instances,5,36,0 -libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,terms,5,36,0 -libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,classes,1,0,0 -libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,instances,1,0,0 +libraries/exceptions/src/Control/Monad/Catch/Pure.hs,exceptions,Pure.hs,terms,0,0,0 +libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,classes,0,0,0 +libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,instances,0,36,0 +libraries/exceptions/src/Control/Monad/Catch.hs,exceptions,Catch.hs,terms,5,0,0 +libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,classes,0,0,0 +libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,instances,0,0,0 libraries/base/Data/List/NonEmpty.hs,base,NonEmpty.hs,terms,1,0,0 -libraries/base/Data/Traversable.hs,base,Traversable.hs,classes,2,2,0 -libraries/base/Data/Traversable.hs,base,Traversable.hs,instances,2,2,0 +libraries/base/Data/Traversable.hs,base,Traversable.hs,classes,0,0,0 +libraries/base/Data/Traversable.hs,base,Traversable.hs,instances,0,0,0 libraries/base/Data/Traversable.hs,base,Traversable.hs,terms,2,2,0 -libraries/base/GHC/Base.hs,base,Base.hs,classes,2,0,0 -libraries/base/GHC/Base.hs,base,Base.hs,instances,2,0,0 +libraries/base/GHC/Base.hs,base,Base.hs,classes,0,0,0 +libraries/base/GHC/Base.hs,base,Base.hs,instances,0,0,0 libraries/base/GHC/Base.hs,base,Base.hs,terms,2,0,0 -libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,classes,1,4,0 -libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,instances,1,4,0 +libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,instances,0,0,0 libraries/containers/containers/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,terms,1,4,0 -libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,classes,2,2,0 -libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,instances,2,2,0 +libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,classes,0,0,0 +libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,instances,0,0,0 libraries/containers/containers/src/Data/Tree.hs,containers,Tree.hs,terms,2,2,0 -libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,classes,1,4,0 -libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,instances,1,4,0 +libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,instances,0,0,0 libraries/containers/containers-tests/src/Data/Map/Strict/Internal.hs,containers,Internal.hs,terms,1,4,0 -libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,classes,2,2,0 -libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,instances,2,2,0 +libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,classes,0,0,0 +libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,instances,0,0,0 libraries/containers/containers-tests/src/Data/Tree.hs,containers,Tree.hs,terms,2,2,0 -libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,classes,1,0,0 -libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,instances,1,0,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/FieldGrammar/Class.hs,Cabal,Class.hs,terms,1,0,0 -libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,classes,10,11,0 -libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,instances,10,11,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/PackageDescription/FieldGrammar.hs,Cabal,FieldGrammar.hs,terms,10,11,0 -libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,classes,1,0,0 -libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,instances,1,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/Types/Version.hs,Cabal,Version.hs,terms,1,0,0 -libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,classes,1,0,0 -libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,instances,1,0,0 +libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/SPDX/LicenseExpression.hs,Cabal,LicenseExpression.hs,terms,1,0,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,classes,1,1,0 -libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,instances,1,1,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/Compat/Lens.hs,Cabal,Lens.hs,terms,1,1,0 -libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,classes,1,0,0 -libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,instances,1,0,0 +libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Completion.hs,haskeline,Completion.hs,terms,1,0,0 -libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,classes,1,4,0 -libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,instances,1,4,0 +libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Command/KillRing.hs,haskeline,KillRing.hs,terms,1,4,0 -libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,classes,1,5,0 -libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,instances,1,5,0 +libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Command/History.hs,haskeline,History.hs,terms,1,5,0 -libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,classes,3,3,0 -libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,instances,3,3,0 +libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/RunCommand.hs,haskeline,RunCommand.hs,terms,3,3,0 -libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,classes,1,1,0 -libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,instances,1,1,0 +libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,classes,0,0,0 +libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,instances,0,0,0 libraries/parsec/src/Text/Parsec/Expr.hs,parsec,Expr.hs,terms,1,1,0 -libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,classes,2,19,0 -libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,instances,2,19,0 +libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,classes,0,0,0 +libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,instances,0,0,0 libraries/parsec/src/Text/Parsec/Char.hs,parsec,Char.hs,terms,2,19,0 -libraries/base/Control/Monad.hs,base,Monad.hs,classes,0,2,0 -libraries/base/Control/Monad.hs,base,Monad.hs,instances,0,2,0 +libraries/base/Control/Monad.hs,base,Monad.hs,classes,0,0,0 +libraries/base/Control/Monad.hs,base,Monad.hs,instances,0,0,0 libraries/base/Control/Monad.hs,base,Monad.hs,terms,0,2,0 -libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,classes,0,5,0 -libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,instances,0,5,0 +libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,classes,0,0,0 +libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,instances,0,0,0 libraries/base/Data/Bitraversable.hs,base,Bitraversable.hs,terms,0,5,0 -libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,classes,0,14,0 -libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,instances,0,14,0 +libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,classes,0,0,0 +libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,instances,0,0,0 libraries/terminfo/System/Console/Terminfo/Keys.hs,terminfo,Keys.hs,terms,0,14,0 -libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,classes,0,2,0 -libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,instances,0,2,0 +libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,classes,0,0,0 +libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,instances,0,0,0 libraries/terminfo/System/Console/Terminfo/Base.hs,terminfo,Base.hs,terms,0,2,0 -libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,classes,0,4,0 -libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,instances,0,4,0 +libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,classes,0,0,0 +libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,instances,0,0,0 libraries/terminfo/System/Console/Terminfo/Edit.hs,terminfo,Edit.hs,terms,0,4,0 -libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,classes,0,23,0 -libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,instances,0,23,0 +libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,classes,0,0,0 +libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,instances,0,0,0 libraries/terminfo/System/Console/Terminfo/Cursor.hs,terminfo,Cursor.hs,terms,0,23,0 -libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,classes,0,4,0 -libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,instances,0,4,0 +libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,instances,0,0,0 libraries/containers/containers/src/Data/Sequence/Internal.hs,containers,Internal.hs,terms,0,4,0 -libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,classes,0,4,0 -libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,instances,0,4,0 +libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,classes,0,0,0 +libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,instances,0,0,0 libraries/containers/containers-tests/src/Data/Sequence/Internal.hs,containers,Internal.hs,terms,0,4,0 -libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,classes,0,1,0 -libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/FieldGrammar/FieldDescrs.hs,Cabal,FieldDescrs.hs,terms,0,1,0 -libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,classes,0,9,0 -libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,instances,0,9,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/PackageDescription/Check.hs,Cabal,Check.hs,terms,0,9,0 -libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,classes,0,2,0 -libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/PackageDescription/Configuration.hs,Cabal,Configuration.hs,terms,0,2,0 -libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,classes,0,2,0 -libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs,Cabal,FieldGrammar.hs,terms,0,2,0 -libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,classes,0,2,0 -libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,instances,0,2,0 +libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/Types/ModuleRenaming.hs,Cabal,ModuleRenaming.hs,terms,0,2,0 -libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,classes,0,1,0 -libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/Types/GenericPackageDescription/Lens.hs,Cabal,Lens.hs,terms,0,1,0 -libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,classes,0,1,0 -libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,instances,0,1,0 +libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,classes,0,0,0 +libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,instances,0,0,0 libraries/Cabal/Cabal/src/Distribution/Fields/Pretty.hs,Cabal,Pretty.hs,terms,0,1,0 -libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,classes,0,15,0 -libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,instances,0,15,0 +libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline.hs,haskeline,Haskeline.hs,terms,0,15,0 -libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,classes,0,13,0 -libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,instances,0,13,0 +libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Vi.hs,haskeline,Vi.hs,terms,0,13,0 -libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,classes,0,1,0 -libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,instances,0,1,0 +libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Backend/Posix/Encoder.hs,haskeline,Encoder.hs,terms,0,1,0 -libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,classes,0,8,0 -libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,instances,0,8,0 +libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Command/Completion.hs,haskeline,Completion.hs,terms,0,8,0 -libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,classes,0,1,0 -libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,instances,0,1,0 +libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,classes,0,0,0 +libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,instances,0,0,0 libraries/haskeline/System/Console/Haskeline/Command/Undo.hs,haskeline,Undo.hs,terms,0,1,0 -libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,classes,0,2,0 -libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,instances,0,2,0 +libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,classes,0,0,0 +libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,instances,0,0,0 libraries/time/lib/Data/Time/Format/Parse.hs,time,Parse.hs,terms,0,2,0 -libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,classes,0,1,0 -libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,instances,0,1,0 +libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,classes,0,0,0 +libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,instances,0,0,0 libraries/parsec/src/Text/Parsec/Token.hs,parsec,Token.hs,terms,0,1,0 -libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,classes,0,24,0 -libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,instances,0,24,0 +libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,classes,0,0,0 +libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,instances,0,0,0 libraries/parsec/src/Text/Parsec/Combinator.hs,parsec,Combinator.hs,terms,0,24,0 diff --git a/impact/tocsv.py b/impact/tocsv.py index 818397523f3..9c1cb797732 100644 --- a/impact/tocsv.py +++ b/impact/tocsv.py @@ -36,9 +36,21 @@ def parse_line(p): 'full_path': full_path, 'package' : package, 'module' : module, - 'classes' : counts, - 'instances': counts, - 'terms' : counts, + 'classes' : { + "ats": 0, + "totals": 0, + "WDTs" : 0 + }, + 'instances': { + "ats": 0, + "totals": 0, + "WDTs" : 0 + }, + 'terms' : { + "ats": 0, + "totals": 0, + "WDTs" : 0 + } } interm[full_path][f][name] = count From 2395fd45d7c4e75ddf295355b3c1f4bbdde01b29 Mon Sep 17 00:00:00 2001 From: Alex Hubers Date: Thu, 12 May 2022 13:17:21 -0500 Subject: [PATCH 3/4] Fix error where `@` was blocking a Total from being counted --- impact/compiler/classes/wdt.raw | 1 + impact/measure-impact.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/impact/compiler/classes/wdt.raw b/impact/compiler/classes/wdt.raw index df090044334..d7af47e17a2 100644 --- a/impact/compiler/classes/wdt.raw +++ b/impact/compiler/classes/wdt.raw @@ -1 +1,2 @@ +/home/alex/PTC/ghc/compiler/GHC/Parser/PostProcess.hs:1 /home/alex/PTC/ghc/compiler/GHC/Hs/Utils.hs:1 diff --git a/impact/measure-impact.sh b/impact/measure-impact.sh index 8383caf8e49..6994358a146 100755 --- a/impact/measure-impact.sh +++ b/impact/measure-impact.sh @@ -1,6 +1,6 @@ #!/bin/bash -ANY="(\w|,|\(|\s|\n|\#|\))" +ANY="(\w|,|\(|\s|\n|\#|\)|\@)" INSTANCE="^instance" CLASS="^class" TERM="^(\w+\s+::)" From 79fad3d0b810da8e2c487349e9a80ea1df501086 Mon Sep 17 00:00:00 2001 From: Alex Hubers Date: Thu, 12 May 2022 13:21:44 -0500 Subject: [PATCH 4/4] Update readme --- impact/README.md | 5 +++-- impact/measure-impact.sh | 17 +++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/impact/README.md b/impact/README.md index 38a9e3e8fe6..028aac634be 100644 --- a/impact/README.md +++ b/impact/README.md @@ -1,10 +1,11 @@ ## How-to 1. Be on Linux / Mac. You'll need [pcregrep](https://www.pcre.org/original/doc/html/pcregrep.html) and python3. -1. Edit `measure-impact.sh` and `tocsv.py` and add an absolute path to your GHC installation. +1. Modify `GHC_PATH` in `measure-impact.sh` to point to (an absolute path of) + your GHC dir. 1. Running `./measure-impact.sh` will build `.raw` files with counts per file, indexed by type and library. `python3 tocsv.py` will aggregate these files - into one `./report.csv`. + into one `./report.csv`. Make sure to run this script from **this** directory. ## Counting total instances/classes/terms diff --git a/impact/measure-impact.sh b/impact/measure-impact.sh index 6994358a146..ef55f9ad62c 100755 --- a/impact/measure-impact.sh +++ b/impact/measure-impact.sh @@ -1,28 +1,24 @@ #!/bin/bash +## EDIT ME! +GHC_PATH="~/PTC/ghc" + +# keywords and patterns ANY="(\w|,|\(|\s|\n|\#|\)|\@)" INSTANCE="^instance" CLASS="^class" TERM="^(\w+\s+::)" - -function measure () { - PATTERN="$2$ANY+#if MIN_VERSION_base\(4,16,0\)(.|\n)+?#endif" - echo $PATTERN; - pcregrep --include "\.hs$" -Mr "$PATTERN" ~/PTC/ghc/$1 > "$3" -} - AT=" \@ " TOTAL="Total" WDT="WDT" function measure2 () { PATTERN="$2$ANY+?$3" - echo $PATTERN; - pcregrep --include "\.hs$" -Mrc "$PATTERN" ~/PTC/ghc/$1 | grep -v ":0" > "$4" + pcregrep --include "\.hs$" -Mrc "$PATTERN" "GHC_PATH/$1" | grep -v ":0" > "$4" } ## -------------------------------------------------------------------------------- -## TODO: this should be abstracted. +## Counting annotations in compiler/GHC/ ## -------------------------------------------------------------------------------- measure2 compiler/GHC "$INSTANCE" "$WDT" ./compiler/instances/wdt.raw @@ -38,6 +34,7 @@ measure2 compiler/GHC "$TERM" "$TOTAL" ./compiler/terms/total.raw measure2 compiler/GHC "$TERM" "$AT" ./compiler/terms/at.raw ## -------------------------------------------------------------------------------- +## Count annotations in libraries/ ## --------------------------------------------------------------------------------