sig   type nameKind = NVar | NFun | NField | NType   class type cabsVisitor =     object       method vEnterScope : unit -> unit       method vExitScope : unit -> unit       method vattr : Cabs.attribute -> Cabs.attribute list Cil.visitAction       method vblock : Cabs.block -> Cabs.block Cil.visitAction       method vdecltype : Cabs.decl_type -> Cabs.decl_type Cil.visitAction       method vdef : Cabs.definition -> Cabs.definition list Cil.visitAction       method vexpr : Cabs.expression -> Cabs.expression Cil.visitAction       method vinitexpr :         Cabs.init_expression -> Cabs.init_expression Cil.visitAction       method vname :         Cabsvisit.nameKind ->         Cabs.specifier -> Cabs.name -> Cabs.name Cil.visitAction       method vspec : Cabs.specifier -> Cabs.specifier Cil.visitAction       method vstmt : Cabs.statement -> Cabs.statement list Cil.visitAction       method vtypespec :         Cabs.typeSpecifier -> Cabs.typeSpecifier Cil.visitAction       method vvar : string -> string     end   class nopCabsVisitor : cabsVisitor   val visitCabsTypeSpecifier :     Cabsvisit.cabsVisitor -> Cabs.typeSpecifier -> Cabs.typeSpecifier   val visitCabsSpecifier :     Cabsvisit.cabsVisitor -> Cabs.specifier -> Cabs.specifier   val visitCabsDeclType :     Cabsvisit.cabsVisitor -> bool -> Cabs.decl_type -> Cabs.decl_type   val visitCabsDefinition :     Cabsvisit.cabsVisitor -> Cabs.definition -> Cabs.definition list   val visitCabsBlock : Cabsvisit.cabsVisitor -> Cabs.block -> Cabs.block   val visitCabsStatement :     Cabsvisit.cabsVisitor -> Cabs.statement -> Cabs.statement list   val visitCabsExpression :     Cabsvisit.cabsVisitor -> Cabs.expression -> Cabs.expression   val visitCabsAttributes :     Cabsvisit.cabsVisitor -> Cabs.attribute list -> Cabs.attribute list   val visitCabsName :     Cabsvisit.cabsVisitor ->     Cabsvisit.nameKind -> Cabs.specifier -> Cabs.name -> Cabs.name   val visitCabsFile : Cabsvisit.cabsVisitor -> Cabs.file -> Cabs.file end