-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | HLint as a GHC source plugin.
--
-- Splint makes HLint available as a GHC source plugin. To use it, pass
-- -fplugin=Splint to GHC. Any options passed to Splint are
-- passed through to HLint. For example you can use
-- -fplugin-opt=Splint:'--ignore=Use concatMap' to ignore the
-- "Use concatMap" suggestion.
@package splint
@version 1.0.2.0
module Splint.RemoteData
data RemoteData e a
NotAsked :: RemoteData e a
Loading :: RemoteData e a
Failure :: e -> RemoteData e a
Success :: a -> RemoteData e a
instance (GHC.Show.Show e, GHC.Show.Show a) => GHC.Show.Show (Splint.RemoteData.RemoteData e a)
instance (GHC.Classes.Eq e, GHC.Classes.Eq a) => GHC.Classes.Eq (Splint.RemoteData.RemoteData e a)
module Splint.Settings
type Settings = (ParseFlags, [Classify], Hint)
-- | Getting settings is not instantaneous. Since settings are usually
-- reused between modules, it makes sense to cache them. However each
-- module can potentially customize its settings using the
-- OPTIONS_GHC pragma. This variable is used as a cache of
-- settings keyed on the command line options.
cache :: TVar (Map [String] (RemoteData IOException Settings))
-- | Even though we cache settings based on command line options, we only
-- want to load settings one at a time. Practically this is to work
-- around a bug in GHC. But aside from that, loading settings calls
-- withArgs and doing that simultaneously in separate threads is
-- dubious. https://gitlab.haskell.org/ghc/ghc/issues/18261
semaphore :: TMVar ()
withTMVar :: TMVar a -> (a -> IO b) -> IO b
load :: [String] -> IO Settings
module Splint
plugin :: Plugin
action :: [CommandLineOption] -> ModSummary -> HsParsedModule -> Hsc HsParsedModule
ideaToWarnMsg :: DynFlags -> Idea -> WarnMsg
ideaToMsgDoc :: Idea -> MsgDoc
parse :: ParseFlags -> ModSummary -> HsParsedModule -> Hsc ModuleEx