Abbie's Haskell compiler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

42 lines
1.2 KiB

{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}
module Main.Queries where
import Data.ByteString (ByteString)
import Development.Shake.Classes
import Development.Shake
import Frontend.Syntax.Var (ParsedVar)
import Frontend.Syntax (FeModule)
import GHC.Generics (Generic)
import Rename.Types (FqVar, RenamedMod)
newtype AhcParsedModule = AhcParsedModule { ahcpmFilePath :: String }
deriving newtype (Eq, Show, Binary, Hashable, NFData)
type instance RuleResult AhcParsedModule = FeModule ParsedVar
newtype AhcRenamedModule = AhcRenamedModule { ahcrnFilePath :: String }
deriving newtype (Eq, Show, Binary, Hashable, NFData)
type instance RuleResult AhcRenamedModule = RenamedMod
data AhcModuleFilepath =
AhcModuleFilepath
{ ahcfpImportingModule :: String
, ahcfpModName :: ParsedVar
}
deriving (Eq, Show, Generic, Binary, Hashable, NFData)
type instance RuleResult AhcModuleFilepath = String
newtype AhcModuleHash = AhcModuleHash { ahcmhFilePath :: String }
deriving newtype (Eq, Show, Binary, Hashable, NFData)
type instance RuleResult AhcModuleHash = ByteString