@classmethod<EOL><INDENT>def register(cls, predicate, factory, prepend=False):<DEDENT>
if prepend:<EOL><INDENT>cls._registered.insert(<NUM_LIT:0>, (predicate, factory))<EOL><DEDENT>else:<EOL><INDENT>cls._registered.append((predicate, factory))<EOL><DEDENT>
Adds another type X of typecheck annotations to the framework.
predicate(annot) indicates whether annot has annotation type X;
factory(annot) creates the appropriate typechecker instance.
The checker type is normally added after the existing ones,
but 'prepend' makes it come first.