TypeChecker(not tested) & Declaration Collection(tested)