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