cabal-version: 3.0 name: ghc-tcplugin-api version: 0.6.1.0 x-revision: 1 synopsis: An API for type-checker plugins. license: BSD-3-Clause build-type: Simple author: Sam Derbyshire maintainer: Sam Derbyshire copyright: 2021 Sam Derbyshire homepage: https://github.com/sheaf/ghc-tcplugin-api category: Type System, GHC, Plugin description: This library provides a streamlined monadic interface for writing GHC type-checking plugins. Each stage in a type-checking plugin (initialisation, solving, rewriting, shutdown) has a corresponding monad, preventing operations that are only allowed in some stages to be used in the other stages. Operations that work across multiple stages are overloaded across monads using MTL-like typeclasses. Some operations, like creating evidence for constraints or creating custom type error messages, are also simplified. Please refer to the for example usage. extra-source-files: changelog.md library build-depends: base >= 4.13.0 && < 4.18, ghc >= 8.8 && < 9.4, transformers >= 0.5 && < 0.6, default-language: Haskell2010 ghc-options: -Wall -Wcompat -fwarn-missing-local-signatures -fwarn-incomplete-uni-patterns -fwarn-missing-deriving-strategies -fno-warn-unticked-promoted-constructors hs-source-dirs: src exposed-modules: GHC.TcPlugin.API, GHC.TcPlugin.API.Names, GHC.TcPlugin.API.Internal reexported-modules: GHC.Core.Make , GHC.Plugins , GHC.Types.Unique.DFM , GHC.Types.Unique.FM , GHC.Utils.Outputable if impl(ghc >= 9.3.0) cpp-options: -DHAS_REWRITING else other-modules: GHC.TcPlugin.API.Internal.Shim GHC.TcPlugin.API.Internal.Shim.Reduction if impl(ghc < 9.5.0) cpp-options: -DHAS_DERIVEDS -- Compatibility for versions of GHC prior to 9.0. if impl(ghc < 9.0) mixins: ghc ( GHC as GHC , PrelNames as GHC.Builtin.Names , TysWiredIn as GHC.Builtin.Types , CoreSyn as GHC.Core , CoAxiom as GHC.Core.Coercion.Axiom , Coercion as GHC.Core.Coercion , Class as GHC.Core.Class , DataCon as GHC.Core.DataCon , FamInstEnv as GHC.Core.FamInstEnv , InstEnv as GHC.Core.InstEnv , MkCore as GHC.Core.Make , TyCoRep as GHC.Core.TyCo.Rep , TyCon as GHC.Core.TyCon , Type as GHC.Core.Type , FastString as GHC.Data.FastString , Pair as GHC.Data.Pair , Finder as GHC.Driver.Finder , DynFlags as GHC.Driver.Session , HscTypes as GHC.Driver.Types , GhcPlugins as GHC.Plugins , TcPluginM as GHC.Tc.Plugin , TcSMonad as GHC.Tc.Solver.Monad , TcRnTypes as GHC.Tc.Types , TcEvidence as GHC.Tc.Types.Evidence , TcRnMonad as GHC.Tc.Utils.Monad , TcType as GHC.Tc.Utils.TcType , TcMType as GHC.Tc.Utils.TcMType , Id as GHC.Types.Id , Name as GHC.Types.Name , OccName as GHC.Types.Name.Occurrence , SrcLoc as GHC.Types.SrcLoc , Unique as GHC.Types.Unique , UniqDFM as GHC.Types.Unique.DFM , UniqFM as GHC.Types.Unique.FM , Var as GHC.Types.Var , VarEnv as GHC.Types.Var.Env , VarSet as GHC.Types.Var.Set , Module as GHC.Unit.Module , Module as GHC.Unit.Module.Name , Module as GHC.Unit.Types , Util as GHC.Utils.Misc , TcRnMonad as GHC.Utils.Monad , Outputable as GHC.Utils.Outputable , Panic as GHC.Utils.Panic ) if impl(ghc > 8.10) mixins: ghc ( Predicate as GHC.Core.Predicate , Constraint as GHC.Tc.Types.Constraint , TcOrigin as GHC.Tc.Types.Origin ) else mixins: ghc ( Type as GHC.Core.Predicate , TcRnTypes as GHC.Tc.Types.Constraint , TcRnTypes as GHC.Tc.Types.Origin )