on debug help sign in
ghcide/exe/RuleTypes.hs
33 lines 927 B history raw
1{-# LANGUAGE TypeFamilies #-}
2module RuleTypes (GetHscEnv(..), LoadCradle(..)) where
4import Control.DeepSeq
5import Data.Binary
6import Data.Hashable (Hashable)
7import Development.Shake
8import Development.IDE.GHC.Util
9import Data.Typeable (Typeable)
10import GHC.Generics (Generic)
12-- Rule type for caching GHC sessions.
13type instance RuleResult GetHscEnv = HscEnvEq
15data GetHscEnv = GetHscEnv
16 { hscenvOptions :: [String] -- componentOptions from hie-bios
17 , hscenvDependencies :: [FilePath] -- componentDependencies from hie-bios
18 }
19 deriving (Eq, Show, Typeable, Generic)
21instance Hashable GetHscEnv
22instance NFData GetHscEnv
23instance Binary GetHscEnv
25-- Rule type for caching cradle loading
26type instance RuleResult LoadCradle = HscEnvEq
28data LoadCradle = LoadCradle
29 deriving (Eq, Show, Typeable, Generic)
31instance Hashable LoadCradle
32instance NFData LoadCradle
33instance Binary LoadCradle