0N/ADescription : Signatures of COL as extension of CASL signatures
0N/ACopyright : (c) Till Mossakowski, C. Maeder, Uni Bremen 2004
0N/ALicense : GPLv2 or higher
0N/AMaintainer : till@informatik.uni-bremen.de
0N/AStability : provisional
0N/APortability : portable
0N/ASignatures of COL as extension of CASL signatures.
0N/Adata COLSign = COLSign { constructors ::
Set.Set Id
0N/A } deriving (Show, Eq, Ord)
0N/AemptyCOLSign :: COLSign
0N/AaddCOLSign :: COLSign -> COLSign -> COLSign
0N/A s1 { constructors =
Set.union (constructors s1) $ constructors s2
0N/AdiffCOLSign :: COLSign -> COLSign -> COLSign
s1 { constructors =
Set.difference (constructors s1) $ constructors s2
isSubCOLSign :: COLSign -> COLSign -> Bool
Set.null (constructors s2 Set.\\ constructors s1)
&&
Map.null (observers s2 Map.\\ observers s1)