For traits, requirements were programmatically inferred instead of
using #explicitRequirement.


In the original traits implementation, inference of requirements was necessarily incomplete.  For example, if a method says

self add: x

or 

self class new: n

we would infer a requirement of add: n the instance side and new: on the class side.  However, if the method said

self copyEmpty add: x

we would not infer a requirement of add:

In these cases we included a method definition

add: anObject
self explicitRequirement

to tell the tools that add: was a required method.   We used this very rarely, since most of the time the inference of required methods worked very well.

Andrew