-- 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