code: def check(mod):
      
      v = Check()
      v.visit(mod)
  
      for t in v.types:
          if t not in mod.types and not t in builtin_types:
              v.errors += 1
              uses = ", ".join(v.types[t])
              print('Undefined type {}, used in {}'.format(t, uses))
      return not v.errors
docs: Check the parsed ASDL tree for correctness.
  
      Return True if success. For failure, the errors are printed out and False
      is returned.