uhc-light-1.1.9.2: src/UHC/Light/Compiler/Gam/FixityGam.hs
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