-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A GHC plugin for improving disambiguation of effects. -- -- Instruct GHC to do a better job with disambiguation of effects. -- -- See the README for more information. @package effectful-plugin @version 1.0.0.0 module Effectful.Plugin.Internal -- | Plugin is the compiler plugin data type. Try to avoid -- constructing one of these directly, and just modify some fields of -- defaultPlugin instead: this is to try and preserve source-code -- compatibility when we add fields to this. -- -- Nonetheless, this API is preliminary and highly likely to change in -- the future. data Plugin -- | A list of unique, unambiguous Haskell names in the format of -- (packageName, moduleName, identifier). type Names = [(String, String, String)] -- | Make a polysemy-plugin-style effect disambiguation plugin -- that applies to all the "element-of" typeclasses passed in. Each of -- the names passed in should have type k -> [k] -> -- Type where k can be either polymorphic or -- monomorphic. -- -- Some examples include: -- --
-- ("cleff", "Cleff.Internal.Rec", ":>")
-- ("polysemy", "Polysemy.Internal.Union", "Member")
-- ("effectful", "Effectful.Internal.Effect", ":>")
--
--
-- You can see the source code for notes on the implementation of the
-- plugin.
makePlugin :: Names -> Plugin
instance GHC.Classes.Eq Effectful.Plugin.Internal.OrdType
instance GHC.Classes.Ord Effectful.Plugin.Internal.OrdType
instance GHC.Show.Show Effectful.Plugin.Internal.FakedepWanted
instance GHC.Show.Show Effectful.Plugin.Internal.FakedepGiven
module Effectful.Plugin
plugin :: Plugin