Ship

Book · Public Behavior Witnesses

Public Behavior Witnesses

Draft

Consume named behavior identities across a checked module contract.

The preceding chapter has a companion .shc contract. Its bodyless behavior declarations expose stable identities while their implementations remain in the .shp file. A dependent module can use those identities in ordinary types without reading or comparing implementation bodies.

Contracted Witness

test✓
  let taskstasks: Vector(Book.LanguageReference.BehaviorModules.Task) = [BehaviorModules.Task { title = "ship""ship": String; priority = 11: Int; }];
  let rankedranked: Book.LanguageReference.BehaviorModules.RankedTasks(Book.LanguageReference.BehaviorModules.ByTitle): BehaviorModules.RankedTasks(BehaviorModules.ByTitle) = BehaviorModules.RankedTasks {
    tasks = taskstasks: Vector(Book.LanguageReference.BehaviorModules.Task);
  };
  ✓rankedranked: Book.LanguageReference.BehaviorModules.RankedTasks(Book.LanguageReference.BehaviorModules.ByTitle): BehaviorModules.RankedTasks(BehaviorModules.ByTitle);
  expect ✓Vector.lengthlength: pure fn!('a)(items: Vector(Book.LanguageReference.BehaviorModules.Task)) -> Int(rankedranked: Book.LanguageReference.BehaviorModules.RankedTasks(Book.LanguageReference.BehaviorModules.ByTitle).taskstasks: Vector(Book.LanguageReference.BehaviorModules.Task)) == 11: Int;