ruler-0.4.0.0: src/JdShpGam.chs
-------------------------------------------------------------------------
-- Judgment Gamma
-------------------------------------------------------------------------
%%[1 hs module (JdShpGam)
%%]
%%[1 hs export (JdShpInfo(..), JdShpGam, jdshpgUnionShadow)
%%]
%%[1 hs import (qualified Data.Set as Set, qualified Data.Map as Map, UHC.Util.Pretty, Common, Gam, FmGam)
%%]
-------------------------------------------------------------------------
-- Judgement formats
-------------------------------------------------------------------------
%%[1 hs
data JdShpInfo e
= JdShpInfo
{ jdshExpr :: e
}
| JdShpDel
instance Show (JdShpInfo e) where
show _ = "JdShpInfo"
instance PP e => PP (JdShpInfo e) where
pp (JdShpInfo e) = "Jd" >#< pp e
pp (JdShpDel ) = pp "JdShpDel"
type JdShpGam e = FmKdGam (JdShpInfo e)
jdshpgUnionShadow :: JdShpGam e -> JdShpGam e -> JdShpGam e
jdshpgUnionShadow gn g
= gamFoldWithKey
(\fk i g
-> case i of
JdShpDel -> gamDelete fk g
_ -> gamInsertShadow fk i g
)
g gn
%%]