module UHC.Light.Compiler.Gam.FixityGam ( FixityGam, FixityGamInfo (..), defaultFixityGamInfo , fixityGamLookup , initFixityGam ) where import UHC.Util.Pretty import UHC.Util.Utils import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Gam import UHC.Light.Compiler.Error import qualified Data.Set as Set import UHC.Light.Compiler.VarMp import UHC.Light.Compiler.Substitutable import UHC.Light.Compiler.Ty.Trf.Quantify import Control.Monad import UHC.Util.Binary import UHC.Util.Serialize {-# LINE 40 "src/ehc/Gam/FixityGam.chs" #-} -- If this changes, also change {%{EH}ConfigInternalVersions} data FixityGamInfo = FixityGamInfo { fgiPrio :: !Int, fgiFixity :: !Fixity } deriving Show defaultFixityGamInfo = FixityGamInfo fixityMaxPrio Fixity_Infixl type FixityGam = Gam HsName FixityGamInfo {-# LINE 49 "src/ehc/Gam/FixityGam.chs" #-} deriving instance Typeable FixityGamInfo {-# LINE 53 "src/ehc/Gam/FixityGam.chs" #-} fixityGamLookup :: HsName -> FixityGam -> FixityGamInfo fixityGamLookup nm fg = maybe defaultFixityGamInfo id $ gamLookup nm fg {-# LINE 62 "src/ehc/Gam/FixityGam.chs" #-} initFixityGam :: FixityGam initFixityGam = assocLToGam [ (hsnArrow , FixityGamInfo 1 Fixity_Infixr) , (hsnPrArrow, FixityGamInfo 2 Fixity_Infixr) , (hsnEqTilde, FixityGamInfo 3 Fixity_Infix ) ] {-# LINE 88 "src/ehc/Gam/FixityGam.chs" #-} instance Serialize FixityGamInfo where sput (FixityGamInfo a b) = sput a >> sput b sget = liftM2 FixityGamInfo sget sget