!752 concepts. // A name defined by a string concept Name { S name; S saidByWhom; long saidWhen; *() {} *(S *name, S *saidByWhom, long *saidWhen) { change(); } } // Convert a name to a snippet ID concept Name2Program extends IdentificationTask { new Ref input; S outSnippetID; *() {} *(Concept input, S outSnippetID) { this.input.set(input); this.outSnippetID = outSnippetID; change(); } } // Let's validate stuff so it can be used. concept Validate { new Ref object; *() {} *(Concept object) { this.object.set(object); } } p { }