/* -*- encoding: utf-8 -*- */ /* from the article */ module tagged var tag_map : map to string procedure make_tagged(x: ♥t): tagged ♥t begin return (bestow tagged x) end procedure tag(x: tagged ♥t, y: string): void begin tag_map[x] := y end procedure get_tag(x: tagged ♥t): string begin return tag_map[x] end end.