Changeset 1464
- Timestamp:
- 04/03/05 10:29:11 (4 years ago)
- svk:copy_cache_prev:
- 2941
- Files:
-
- 2 modified
-
VICTUALS (modified) (1 diff)
-
src/Class.hs (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
VICTUALS
r1409 r1464 37 37 38 38 Kwiki, the Ritalin and Everything Brian Ingerson ref:YAPC::Taipei::2005 39 40 the true Black Meat, flesh of the 41 giant aquatic Brazilian centipede Sam Vilain -
src/Class.hs
r1427 r1464 43 43 --, clsAssocs :: Map Label MetaAssoc 44 44 --, clsRevAssocs :: Map Label MetaAssoc 45 , clsCats :: Map Label (Visibility, Meta Category)45 , clsCats :: Map Label (Visibility, MetaAssoc) 46 46 } 47 47 … … 82 82 writing proofs. 83 83 -} 84 data Meta Category = MetaCategory84 data MetaAssoc = MetaAssoc 85 85 { catClass :: MetaClass 86 , catPair :: Meta Category86 , catPair :: MetaAssoc 87 87 , catRange :: Range 88 88 , catIsComposite :: Bool -- if you kill this, its children … … 95 95 {- 96 96 97 ∃ MetaClass A, Meta CategoryC : A.clsCats ∋ C ↔ C.catClass = A98 99 ∃ Meta CategoryC₁, C₂ : C₁.catPair = C₂ ↔ C₂.catPair = C₁97 ∃ MetaClass A, MetaAssoc C : A.clsCats ∋ C ↔ C.catClass = A 98 99 ∃ MetaAssoc C₁, C₂ : C₁.catPair = C₂ ↔ C₂.catPair = C₁ 100 100 101 101 -- can't be composite both ways 102 102 103 ∃ Meta CategoryC₁, C₂ : C₁.catPair = C₂ ∧ C₁.catIsComposite103 ∃ MetaAssoc C₁, C₂ : C₁.catPair = C₂ ∧ C₁.catIsComposite 104 104 → ¬(C₂.catIsComposite) 105 105 106 106 -- this seems the simplest way to specify complementary categories 107 107 108 ∃ Meta CategoryC₁, C₂, MetaClass M₁, M₂108 ∃ MetaAssoc C₁, C₂, MetaClass M₁, M₂ 109 109 : C₁.catPair = C₂ ∧ C₁.catClass = M₁ ∧ C₂.catClass = M₂ 110 110 → ( ∃ M₁.clsCats{C₂.catCompanion} … … 178 178 Package.clsCats = 179 179 { pkgChildren = 180 (Public, Meta Category180 (Public, MetaAssoc 181 181 { catIsComposite = true, 182 182 catRange = (Zero, One), 183 183 catCompanion = "pkgParent", 184 catPair = Meta Category{184 catPair = MetaAssoc { 185 185 catClass = Package, 186 186 catRange = (Zero, Many), … … 218 218 219 219 Module.clsAssocs = 220 { modTraits = (Public, Meta Category220 { modTraits = (Public, MetaAssoc 221 221 { catIsComposite = true, 222 222 catRange = (Zero, Many), 223 223 catCompanion = "pkgParent", 224 224 catKeyed = true, 225 catPair = Meta Category225 catPair = MetaAssoc 226 226 ( { catClass = PkgTrait, 227 227 catRange = (One, One) } ), … … 231 231 Class := MetaClass where clsName = "Class" 232 232 Class.clsAssocs = 233 { isa = (Public, Meta Category233 { isa = (Public, MetaAssoc 234 234 { catOrdered = true, 235 235 catRange = (Zero, Many), 236 236 catCompanion = "subClasses", 237 catPair = Meta Category237 catPair = MetaAssoc 238 238 { catRange = (Zero, Many), 239 239 catClass = Class } 240 240 }), 241 methods = (Public, Meta Category241 methods = (Public, MetaAssoc 242 242 { catKeyed = true, 243 243 catRange = (Zero, Many), 244 244 catCompanion = "Class", 245 catPair = Meta Category245 catPair = MetaAssoc 246 246 { catRange = (One, One), 247 247 catClass = Method
