Interface ConstrainingComposer<C extends Candidate,​I extends Composition<C>,​R extends Result,​L extends ConstraintEvent>