anchor.diff:    }
   
     visitTypedefType(TypedefType node) {
  -    throw 'TypedefType is not implemented in tree shaker';
  +    shaker.addUsedTypedef(node.typedefNode);
     }
   
     visitFunctionType(FunctionType node) {
  
positive.code: 
    Member defaultMember(Member node) {
      if (!shaker.isMemberBodyUsed(node)) {
        if (!shaker.isMemberOverridden(node)) {
          node.canonicalName?.unbind();
          return null;
        }
  
negative.code: 
  Program transformProgram(
      CoreTypes coreTypes, ClassHierarchy hierarchy, Program program,
      {List<ProgramRoot> programRoots, bool strongMode: false}) {
    new TreeShaker(coreTypes, hierarchy, program,
            programRoots: programRoots, strongMode: strongMode)
        .transform(program);
    return program;
  }
  