code: func (f *entityRecordingVisitor) Visit(n ast.Node) ast.Visitor {
  	switch n := n.(type) {
  	case *ast.File, *ast.Package, *ast.BlockStmt, *ast.DeclStmt, *ast.FuncDecl, *ast.GenDecl:
  		return f
  	case *ast.TypeSpec:
  		if structType, ok := n.Type.(*ast.StructType); ok {
  			// look for a Entity with a dosa annotation
  			if isDosaEntity(structType) {
  				table, err := tableFromStructType(n.Name.Name, structType, f.packagePrefix)
  				if err == nil {
  					f.entities = append(f.entities, table)
  				} else {
  					f.warnings = append(f.warnings, err)
  				}
  			}
  		}
  	}
  	return nil
  }
docs: // Visit records all the entities seen into the entityRecordingVisitor structure