m3tk/src/ast/M3ASTOp_AS.i3


*************************************************************************
                      Copyright (C) Olivetti 1989                        
                          All Rights reserved                            
                                                                         
 Use and copy of this software and preparation of derivative works based 
 upon this software are permitted to any person, provided this same      
 copyright notice and the following Olivetti warranty disclaimer are      
 included in any copy of the software or any modification thereof or     
 derivative work therefrom made by any person.                           
                                                                         
 This software is made available AS IS and Olivetti disclaims all        
 warranties with respect to this software, whether expressed or implied  
 under any law, including all implied warranties of merchantibility and  
 fitness for any purpose. In no event shall Olivetti be liable for any   
 damages whatsoever resulting from loss of use, data or profits or       
 otherwise arising out of or in connection with the use or performance   
 of this software.                                                       
*************************************************************************

 Copyright (C) 1991, Digital Equipment Corporation           
 All rights reserved.                                        
 See the file COPYRIGHT for a full description.              

INTERFACE M3ASTOp_AS;
This view adds concrete methods to the M3AST_AS objects to satisfy the AST_{Init,Name,WalkRep,Iter,CopyRep} abstract methods.

IMPORT M3AST_AS;
IMPORT M3AST_AS_Init, M3AST_PG_Init;
IMPORT M3AST_AS_Display;
IMPORT M3AST_AS_Walk;
IMPORT M3AST_AS_Copy;
IMPORT M3AST_AS_Iter;
IMPORT M3AST_AS_Name;
IMPORT M3AST_AS_F AS Previous_View;

TYPE
  SRC_NODE_C = Previous_View.SRC_NODE_C OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.SRC_NODE_C;
  END;

  ID = Previous_View.ID OBJECT
  OVERRIDES
    display := M3AST_AS_Display.ID;
  END;

  LITERAL = Previous_View.LITERAL OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.LITERAL;
  END;

  Whitespace = Previous_View.Whitespace OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.Whitespace;
    name := M3AST_AS_Name.Whitespace;
  END;

  Comment = Previous_View.Comment OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.Comment;
    name := M3AST_AS_Name.Comment;
  END;

  Pragma = Previous_View.Pragma OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.Pragma;
    name := M3AST_AS_Name.Pragma;
  END;

  BadChar = Previous_View.BadChar OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.BadChar;
    name  := M3AST_AS_Name.BadChar;
  END;

  Token = Previous_View.Token OBJECT
  OVERRIDES
    display  := M3AST_AS_Display.Token;
    name := M3AST_AS_Name.Token;
  END;

  BINARY = Previous_View.BINARY OBJECT
  OVERRIDES
    walk := M3AST_AS_Walk.BINARY;
    newIter := M3AST_AS_Iter.BINARY_newIter;
  END;

  UNARY = Previous_View.UNARY OBJECT
  OVERRIDES
    walk := M3AST_AS_Walk.UNARY;
    newIter := M3AST_AS_Iter.UNARY_newIter;
  END;

  Module_id = Previous_View.Module_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Module_id;
    name := M3AST_AS_Name.Module_id;
  END;
  Interface_id = Previous_View.Interface_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Interface_id;
    name := M3AST_AS_Name.Interface_id;
  END;
  F_Interface_id = Previous_View.F_Interface_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.F_Interface_id;
    name := M3AST_AS_Name.F_Interface_id;
  END;
  Interface_AS_id = Previous_View.Interface_AS_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Interface_AS_id;
    name := M3AST_AS_Name.Interface_AS_id;
  END;
  F_Value_id = Previous_View.F_Value_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.F_Value_id;
    name := M3AST_AS_Name.F_Value_id;
  END;
  F_Var_id = Previous_View.F_Var_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.F_Var_id;
    name := M3AST_AS_Name.F_Var_id;
  END;
  F_Readonly_id = Previous_View.F_Readonly_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.F_Readonly_id;
    name := M3AST_AS_Name.F_Readonly_id;
  END;
  Type_id = Previous_View.Type_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Type_id;
    name := M3AST_AS_Name.Type_id;
  END;
  Const_id = Previous_View.Const_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Const_id;
    name := M3AST_AS_Name.Const_id;
  END;
  Var_id = Previous_View.Var_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Var_id;
    name := M3AST_AS_Name.Var_id;
  END;
  Proc_id = Previous_View.Proc_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Proc_id;
    name := M3AST_AS_Name.Proc_id;
  END;
  Enum_id = Previous_View.Enum_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Enum_id;
    name := M3AST_AS_Name.Enum_id;
  END;
  Method_id = Previous_View.Method_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Method_id;
    name := M3AST_AS_Name.Method_id;
  END;
  Override_id = Previous_View.Override_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Override_id;
    name := M3AST_AS_Name.Override_id;
  END;
  Field_id = Previous_View.Field_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Field_id;
    name := M3AST_AS_Name.Field_id;
  END;
  For_id = Previous_View.For_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.For_id;
    name := M3AST_AS_Name.For_id;
  END;
  Handler_id = Previous_View.Handler_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Handler_id;
    name := M3AST_AS_Name.Handler_id;
  END;
  Tcase_id = Previous_View.Tcase_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Tcase_id;
    name := M3AST_AS_Name.Tcase_id;
  END;
  With_id = Previous_View.With_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.With_id;
    name := M3AST_AS_Name.With_id;
  END;
  Exc_id = Previous_View.Exc_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Exc_id;
    name := M3AST_AS_Name.Exc_id;
  END;
  Used_interface_id = Previous_View.Used_interface_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Used_interface_id;
    name := M3AST_AS_Name.Used_interface_id;
  END;
  Used_def_id = Previous_View.Used_def_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Used_def_id;
    name := M3AST_AS_Name.Used_def_id;
  END;
  Qual_used_id = Previous_View.Qual_used_id OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Qual_used_id;
    name := M3AST_AS_Name.Qual_used_id;
    walk := M3AST_AS_Walk.Qual_used_id;
    newIter := M3AST_AS_Iter.Qual_used_id_newIter;
  END;
  Compilation_Unit = Previous_View.Compilation_Unit OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Compilation_Unit;
    name := M3AST_AS_Name.Compilation_Unit;
    walk := M3AST_AS_Walk.Compilation_Unit;
    newIter := M3AST_AS_Iter.Compilation_Unit_newIter;
  END;
  Interface_gen_def = Previous_View.Interface_gen_def OBJECT
  OVERRIDES
    init := M3AST_PG_Init.Interface_gen_def;
    copy := M3AST_AS_Copy.Interface_gen_def;
    name := M3AST_AS_Name.Interface_gen_def;
    walk := M3AST_AS_Walk.Interface_gen_def;
    newIter := M3AST_AS_Iter.Interface_gen_def_newIter;
  END;
  Module_gen_def = Previous_View.Module_gen_def OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Module_gen_def;
    name := M3AST_AS_Name.Module_gen_def;
    walk := M3AST_AS_Walk.Module_gen_def;
    newIter := M3AST_AS_Iter.Module_gen_def_newIter;
  END;
  Interface_gen_ins = Previous_View.Interface_gen_ins OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Interface_gen_ins;
    name := M3AST_AS_Name.Interface_gen_ins;
    walk := M3AST_AS_Walk.Interface_gen_ins;
    newIter := M3AST_AS_Iter.Interface_gen_ins_newIter;
  END;
  Module_gen_ins = Previous_View.Module_gen_ins OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Module_gen_ins;
    name := M3AST_AS_Name.Module_gen_ins;
    walk := M3AST_AS_Walk.Module_gen_ins;
    newIter := M3AST_AS_Iter.Module_gen_ins_newIter;
  END;
  Interface = Previous_View.Interface OBJECT
  OVERRIDES
    init := M3AST_PG_Init.Interface;
    copy := M3AST_AS_Copy.Interface;
    name := M3AST_AS_Name.Interface;
    walk := M3AST_AS_Walk.Interface;
    newIter := M3AST_AS_Iter.Interface_newIter;
  END;
  Module = Previous_View.Module OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Module;
    name := M3AST_AS_Name.Module;
    walk := M3AST_AS_Walk.Module;
    newIter := M3AST_AS_Iter.Module_newIter;
  END;
  Unsafe = Previous_View.Unsafe OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Unsafe;
    name := M3AST_AS_Name.Unsafe;
  END;
  Import_item = Previous_View.Import_item OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Import_item;
    name := M3AST_AS_Name.Import_item;
    walk := M3AST_AS_Walk.Import_item;
    newIter := M3AST_AS_Iter.Import_item_newIter;
  END;
  Simple_import = Previous_View.Simple_import OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Simple_import;
    name := M3AST_AS_Name.Simple_import;
    walk := M3AST_AS_Walk.Simple_import;
    newIter := M3AST_AS_Iter.Simple_import_newIter;
  END;
  From_import = Previous_View.From_import OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.From_import;
    name := M3AST_AS_Name.From_import;
    walk := M3AST_AS_Walk.From_import;
    newIter := M3AST_AS_Iter.From_import_newIter;
  END;
  Revelation_s = Previous_View.Revelation_s OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Revelation_s;
    name := M3AST_AS_Name.Revelation_s;
    walk := M3AST_AS_Walk.Revelation_s;
    newIter := M3AST_AS_Iter.Revelation_s_newIter;
  END;
  Const_decl_s = Previous_View.Const_decl_s OBJECT
  OVERRIDES
    init := M3AST_PG_Init.DECL;
    copy := M3AST_AS_Copy.Const_decl_s;
    name := M3AST_AS_Name.Const_decl_s;
    walk := M3AST_AS_Walk.Const_decl_s;
    newIter := M3AST_AS_Iter.Const_decl_s_newIter;
  END;
  Type_decl_s = Previous_View.Type_decl_s OBJECT
  OVERRIDES
    init := M3AST_PG_Init.DECL;
    copy := M3AST_AS_Copy.Type_decl_s;
    name := M3AST_AS_Name.Type_decl_s;
    walk := M3AST_AS_Walk.Type_decl_s;
    newIter := M3AST_AS_Iter.Type_decl_s_newIter;
  END;
  Var_decl_s = Previous_View.Var_decl_s OBJECT
  OVERRIDES
    init := M3AST_PG_Init.DECL;
    copy := M3AST_AS_Copy.Var_decl_s;
    name := M3AST_AS_Name.Var_decl_s;
    walk := M3AST_AS_Walk.Var_decl_s;
    newIter := M3AST_AS_Iter.Var_decl_s_newIter;
  END;
  Exc_decl_s = Previous_View.Exc_decl_s OBJECT
  OVERRIDES
    init := M3AST_PG_Init.DECL;
    copy := M3AST_AS_Copy.Exc_decl_s;
    name := M3AST_AS_Name.Exc_decl_s;
    walk := M3AST_AS_Walk.Exc_decl_s;
    newIter := M3AST_AS_Iter.Exc_decl_s_newIter;
  END;
  Proc_decl = Previous_View.Proc_decl OBJECT
  OVERRIDES
    init := M3AST_PG_Init.DECL;
    copy := M3AST_AS_Copy.Proc_decl;
    name := M3AST_AS_Name.Proc_decl;
    walk := M3AST_AS_Walk.Proc_decl;
    newIter := M3AST_AS_Iter.Proc_decl_newIter;
  END;
  Const_decl = Previous_View.Const_decl OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Const_decl;
    name := M3AST_AS_Name.Const_decl;
    walk := M3AST_AS_Walk.Const_decl;
    newIter := M3AST_AS_Iter.Const_decl_newIter;
  END;
  Var_decl = Previous_View.Var_decl OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Var_decl;
    name := M3AST_AS_Name.Var_decl;
    walk := M3AST_AS_Walk.Var_decl;
    newIter := M3AST_AS_Iter.Var_decl_newIter;
  END;
  Exc_decl = Previous_View.Exc_decl OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Exc_decl;
    name := M3AST_AS_Name.Exc_decl;
    walk := M3AST_AS_Walk.Exc_decl;
    newIter := M3AST_AS_Iter.Exc_decl_newIter;
  END;
  Subtype_decl = Previous_View.Subtype_decl OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Subtype_decl;
    name := M3AST_AS_Name.Subtype_decl;
    walk := M3AST_AS_Walk.Subtype_decl;
    newIter := M3AST_AS_Iter.Subtype_decl_newIter;
  END;
  Concrete_decl = Previous_View.Concrete_decl OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Concrete_decl;
    name := M3AST_AS_Name.Concrete_decl;
    walk := M3AST_AS_Walk.Concrete_decl;
    newIter := M3AST_AS_Iter.Concrete_decl_newIter;
  END;
  Subtype_reveal = Previous_View.Subtype_reveal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Subtype_reveal;
    name := M3AST_AS_Name.Subtype_reveal;
    walk := M3AST_AS_Walk.Subtype_reveal;
    newIter := M3AST_AS_Iter.Subtype_reveal_newIter;
  END;
  Concrete_reveal = Previous_View.Concrete_reveal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Concrete_reveal;
    name := M3AST_AS_Name.Concrete_reveal;
    walk := M3AST_AS_Walk.Concrete_reveal;
    newIter := M3AST_AS_Iter.Concrete_reveal_newIter;
  END;
  Named_type = Previous_View.Named_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Named_type;
    name := M3AST_AS_Name.Named_type;
    walk := M3AST_AS_Walk.Named_type;
    newIter := M3AST_AS_Iter.Named_type_newIter;
  END;
  Integer_type = Previous_View.Integer_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Integer_type;
    name := M3AST_AS_Name.Integer_type;
  END;
  Longint_type = Previous_View.Longint_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Longint_type;
    name := M3AST_AS_Name.Longint_type;
  END;
  WideChar_type = Previous_View.WideChar_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.WideChar_type;
    name := M3AST_AS_Name.WideChar_type;
  END;
  Real_type = Previous_View.Real_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Real_type;
    name := M3AST_AS_Name.Real_type;
  END;
  LongReal_type = Previous_View.LongReal_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.LongReal_type;
    name := M3AST_AS_Name.LongReal_type;
  END;
  Extended_type = Previous_View.Extended_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Extended_type;
    name := M3AST_AS_Name.Extended_type;
  END;
  Null_type = Previous_View.Null_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Null_type;
    name := M3AST_AS_Name.Null_type;
  END;
  RefAny_type = Previous_View.RefAny_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.RefAny_type;
    name := M3AST_AS_Name.RefAny_type;
  END;
  Address_type = Previous_View.Address_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Address_type;
    name := M3AST_AS_Name.Address_type;
  END;
  Root_type = Previous_View.Root_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Root_type;
    name := M3AST_AS_Name.Root_type;
    walk := M3AST_AS_Walk.Root_type;
    newIter := M3AST_AS_Iter.Root_type_newIter;
  END;
  Enumeration_type = Previous_View.Enumeration_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Enumeration_type;
    name := M3AST_AS_Name.Enumeration_type;
    walk := M3AST_AS_Walk.Enumeration_type;
    newIter := M3AST_AS_Iter.Enumeration_type_newIter;
  END;
  Subrange_type = Previous_View.Subrange_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Subrange_type;
    name := M3AST_AS_Name.Subrange_type;
    walk := M3AST_AS_Walk.Subrange_type;
    newIter := M3AST_AS_Iter.Subrange_type_newIter;
  END;
  Array_type = Previous_View.Array_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Array_type;
    name := M3AST_AS_Name.Array_type;
    walk := M3AST_AS_Walk.Array_type;
    newIter := M3AST_AS_Iter.Array_type_newIter;
  END;
  Record_type = Previous_View.Record_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Record_type;
    name := M3AST_AS_Name.Record_type;
    walk := M3AST_AS_Walk.Record_type;
    newIter := M3AST_AS_Iter.Record_type_newIter;
  END;
  Object_type = Previous_View.Object_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Object_type;
    name := M3AST_AS_Name.Object_type;
    walk := M3AST_AS_Walk.Object_type;
    newIter := M3AST_AS_Iter.Object_type_newIter;
  END;
  Set_type = Previous_View.Set_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Set_type;
    name := M3AST_AS_Name.Set_type;
    walk := M3AST_AS_Walk.Set_type;
    newIter := M3AST_AS_Iter.Set_type_newIter;
  END;
  Procedure_type = Previous_View.Procedure_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Procedure_type;
    name := M3AST_AS_Name.Procedure_type;
    walk := M3AST_AS_Walk.Procedure_type;
    newIter := M3AST_AS_Iter.Procedure_type_newIter;
  END;
  Ref_type = Previous_View.Ref_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Ref_type;
    name := M3AST_AS_Name.Ref_type;
    walk := M3AST_AS_Walk.Ref_type;
    newIter := M3AST_AS_Iter.Ref_type_newIter;
  END;
  Packed_type = Previous_View.Packed_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Packed_type;
    name := M3AST_AS_Name.Packed_type;
    walk := M3AST_AS_Walk.Packed_type;
    newIter := M3AST_AS_Iter.Packed_type_newIter;
  END;
  Opaque_type = Previous_View.Opaque_type OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Opaque_type;
    name := M3AST_AS_Name.Opaque_type;
    walk := M3AST_AS_Walk.Opaque_type;
    newIter := M3AST_AS_Iter.Opaque_type_newIter;
  END;
  Brand = Previous_View.Brand OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Brand;
    name := M3AST_AS_Name.Brand;
    walk := M3AST_AS_Walk.Brand;
    newIter := M3AST_AS_Iter.Brand_newIter;
  END;
  Untraced = Previous_View.Untraced OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Untraced;
    name := M3AST_AS_Name.Untraced;
  END;
  Fields = Previous_View.Fields OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Fields;
    name := M3AST_AS_Name.Fields;
    walk := M3AST_AS_Walk.Fields;
    newIter := M3AST_AS_Iter.Fields_newIter;
  END;
  Method = Previous_View.Method OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Method;
    name := M3AST_AS_Name.Method;
    walk := M3AST_AS_Walk.Method;
    newIter := M3AST_AS_Iter.Method_newIter;
  END;
  Override = Previous_View.Override OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Override;
    name := M3AST_AS_Name.Override;
    walk := M3AST_AS_Walk.Override;
    newIter := M3AST_AS_Iter.Override_newIter;
  END;
  Formal_param = Previous_View.Formal_param OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Formal_param;
    name := M3AST_AS_Name.Formal_param;
    walk := M3AST_AS_Walk.Formal_param;
    newIter := M3AST_AS_Iter.Formal_param_newIter;
  END;
  Raisees_some = Previous_View.Raisees_some OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Raisees_some;
    name := M3AST_AS_Name.Raisees_some;
    walk := M3AST_AS_Walk.Raisees_some;
    newIter := M3AST_AS_Iter.Raisees_some_newIter;
  END;
  Raisees_any = Previous_View.Raisees_any OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Raisees_any;
    name := M3AST_AS_Name.Raisees_any;
  END;
  Range = Previous_View.Range OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Range;
    name := M3AST_AS_Name.Range;
    walk := M3AST_AS_Walk.Range;
    newIter := M3AST_AS_Iter.Range_newIter;
  END;
  Range_EXP = Previous_View.Range_EXP OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Range_EXP;
    name := M3AST_AS_Name.Range_EXP;
    walk := M3AST_AS_Walk.Range_EXP;
    newIter := M3AST_AS_Iter.Range_EXP_newIter;
  END;
  Integer_literal = Previous_View.Integer_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Integer_literal;
    name := M3AST_AS_Name.Integer_literal;
  END;
  Longint_literal = Previous_View.Longint_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Longint_literal;
    name := M3AST_AS_Name.Longint_literal;
  END;
  Real_literal = Previous_View.Real_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Real_literal;
    name := M3AST_AS_Name.Real_literal;
  END;
  LongReal_literal = Previous_View.LongReal_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.LongReal_literal;
    name := M3AST_AS_Name.LongReal_literal;
  END;
  Extended_literal = Previous_View.Extended_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Extended_literal;
    name := M3AST_AS_Name.Extended_literal;
  END;
  Text_literal = Previous_View.Text_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Text_literal;
    name := M3AST_AS_Name.Text_literal;
  END;
  WideText_literal = Previous_View.WideText_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.WideText_literal;
    name := M3AST_AS_Name.WideText_literal;
  END;
  Char_literal = Previous_View.Char_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Char_literal;
    name := M3AST_AS_Name.Char_literal;
  END;
  WideChar_literal = Previous_View.WideChar_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.WideChar_literal;
    name := M3AST_AS_Name.WideChar_literal;
  END;
  Nil_literal = Previous_View.Nil_literal OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Nil_literal;
    name := M3AST_AS_Name.Nil_literal;
  END;
  Exp_used_id = Previous_View.Exp_used_id OBJECT
  OVERRIDES
    init := M3AST_AS_Init.Exp_used_id;
    copy := M3AST_AS_Copy.Exp_used_id;
    name := M3AST_AS_Name.Exp_used_id;
  END;
  Constructor = Previous_View.Constructor OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Constructor;
    name := M3AST_AS_Name.Constructor;
    walk := M3AST_AS_Walk.Constructor;
    newIter := M3AST_AS_Iter.Constructor_newIter;
  END;
  RANGE_EXP_elem = Previous_View.RANGE_EXP_elem OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.RANGE_EXP_elem;
    name := M3AST_AS_Name.RANGE_EXP_elem;
    walk := M3AST_AS_Walk.RANGE_EXP_elem;
    newIter := M3AST_AS_Iter.RANGE_EXP_elem_newIter;
  END;
  Actual_elem = Previous_View.Actual_elem OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Actual_elem;
    name := M3AST_AS_Name.Actual_elem;
    walk := M3AST_AS_Walk.Actual_elem;
    newIter := M3AST_AS_Iter.Actual_elem_newIter;
  END;
  Propagate = Previous_View.Propagate OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Propagate;
    name := M3AST_AS_Name.Propagate;
  END;
  Plus = Previous_View.Plus OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Plus;
    name := M3AST_AS_Name.Plus;
  END;
  Minus = Previous_View.Minus OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Minus;
    name := M3AST_AS_Name.Minus;
  END;
  Times = Previous_View.Times OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Times;
    name := M3AST_AS_Name.Times;
  END;
  Rdiv = Previous_View.Rdiv OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Rdiv;
    name := M3AST_AS_Name.Rdiv;
  END;
  Textcat = Previous_View.Textcat OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Textcat;
    name := M3AST_AS_Name.Textcat;
  END;
  Div = Previous_View.Div OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Div;
    name := M3AST_AS_Name.Div;
  END;
  Mod = Previous_View.Mod OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Mod;
    name := M3AST_AS_Name.Mod;
  END;
  Eq = Previous_View.Eq OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Eq;
    name := M3AST_AS_Name.Eq;
  END;
  Ne = Previous_View.Ne OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Ne;
    name := M3AST_AS_Name.Ne;
  END;
  Gt = Previous_View.Gt OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Gt;
    name := M3AST_AS_Name.Gt;
  END;
  Lt = Previous_View.Lt OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Lt;
    name := M3AST_AS_Name.Lt;
  END;
  Ge = Previous_View.Ge OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Ge;
    name := M3AST_AS_Name.Ge;
  END;
  Le = Previous_View.Le OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Le;
    name := M3AST_AS_Name.Le;
  END;
  And = Previous_View.And OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.And;
    name := M3AST_AS_Name.And;
  END;
  Or = Previous_View.Or OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Or;
    name := M3AST_AS_Name.Or;
  END;
  In = Previous_View.In OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.In;
    name := M3AST_AS_Name.In;
  END;
  Not = Previous_View.Not OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Not;
    name := M3AST_AS_Name.Not;
  END;
  Unaryplus = Previous_View.Unaryplus OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Unaryplus;
    name := M3AST_AS_Name.Unaryplus;
  END;
  Unaryminus = Previous_View.Unaryminus OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Unaryminus;
    name := M3AST_AS_Name.Unaryminus;
  END;
  Deref = Previous_View.Deref OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Deref;
    name := M3AST_AS_Name.Deref;
  END;
  Call = Previous_View.Call OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Call;
    name := M3AST_AS_Name.Call;
    walk := M3AST_AS_Walk.Call;
    newIter := M3AST_AS_Iter.Call_newIter;
  END;
  NEWCall = Previous_View.NEWCall OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.NEWCall;
    name := M3AST_AS_Name.NEWCall;
    walk := M3AST_AS_Walk.Call;
    newIter := M3AST_AS_Iter.Call_newIter;
  END;
  Index = Previous_View.Index OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Index;
    name := M3AST_AS_Name.Index;
    walk := M3AST_AS_Walk.Index;
    newIter := M3AST_AS_Iter.Index_newIter;
  END;
  Actual = Previous_View.Actual OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Actual;
    name := M3AST_AS_Name.Actual;
    walk := M3AST_AS_Walk.Actual;
    newIter := M3AST_AS_Iter.Actual_newIter;
  END;
  Select = Previous_View.Select OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Select;
    name := M3AST_AS_Name.Select;
    walk := M3AST_AS_Walk.Select;
    newIter := M3AST_AS_Iter.Select_newIter;
  END;
  Assign_st = Previous_View.Assign_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Assign_st;
    name := M3AST_AS_Name.Assign_st;
    walk := M3AST_AS_Walk.Assign_st;
    newIter := M3AST_AS_Iter.Assign_st_newIter;
  END;
  Call_st = Previous_View.Call_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Call_st;
    name := M3AST_AS_Name.Call_st;
    walk := M3AST_AS_Walk.Call_st;
    newIter := M3AST_AS_Iter.Call_st_newIter;
  END;
  Case_st = Previous_View.Case_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Case_st;
    name := M3AST_AS_Name.Case_st;
    walk := M3AST_AS_Walk.Case_st;
    newIter := M3AST_AS_Iter.Case_st_newIter;
  END;
  Eval_st = Previous_View.Eval_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Eval_st;
    name := M3AST_AS_Name.Eval_st;
    walk := M3AST_AS_Walk.Eval_st;
    newIter := M3AST_AS_Iter.Eval_st_newIter;
  END;
  Exit_st = Previous_View.Exit_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Exit_st;
    name := M3AST_AS_Name.Exit_st;
  END;
  For_st = Previous_View.For_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.For_st;
    name := M3AST_AS_Name.For_st;
    walk := M3AST_AS_Walk.For_st;
    newIter := M3AST_AS_Iter.For_st_newIter;
  END;
  If_st = Previous_View.If_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.If_st;
    name := M3AST_AS_Name.If_st;
    walk := M3AST_AS_Walk.If_st;
    newIter := M3AST_AS_Iter.If_st_newIter;
  END;
  Lock_st = Previous_View.Lock_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Lock_st;
    name := M3AST_AS_Name.Lock_st;
    walk := M3AST_AS_Walk.Lock_st;
    newIter := M3AST_AS_Iter.Lock_st_newIter;
  END;
  Loop_st = Previous_View.Loop_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Loop_st;
    name := M3AST_AS_Name.Loop_st;
    walk := M3AST_AS_Walk.Loop_st;
    newIter := M3AST_AS_Iter.Loop_st_newIter;
  END;
  Raise_st = Previous_View.Raise_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Raise_st;
    name := M3AST_AS_Name.Raise_st;
    walk := M3AST_AS_Walk.Raise_st;
    newIter := M3AST_AS_Iter.Raise_st_newIter;
  END;
  Repeat_st = Previous_View.Repeat_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Repeat_st;
    name := M3AST_AS_Name.Repeat_st;
    walk := M3AST_AS_Walk.Repeat_st;
    newIter := M3AST_AS_Iter.Repeat_st_newIter;
  END;
  Return_st = Previous_View.Return_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Return_st;
    name := M3AST_AS_Name.Return_st;
    walk := M3AST_AS_Walk.Return_st;
    newIter := M3AST_AS_Iter.Return_st_newIter;
  END;
  Try_st = Previous_View.Try_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Try_st;
    name := M3AST_AS_Name.Try_st;
    walk := M3AST_AS_Walk.Try_st;
    newIter := M3AST_AS_Iter.Try_st_newIter;
  END;
  Typecase_st = Previous_View.Typecase_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Typecase_st;
    name := M3AST_AS_Name.Typecase_st;
    walk := M3AST_AS_Walk.Typecase_st;
    newIter := M3AST_AS_Iter.Typecase_st_newIter;
  END;
  While_st = Previous_View.While_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.While_st;
    name := M3AST_AS_Name.While_st;
    walk := M3AST_AS_Walk.While_st;
    newIter := M3AST_AS_Iter.While_st_newIter;
  END;
  With_st = Previous_View.With_st OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.With_st;
    name := M3AST_AS_Name.With_st;
    walk := M3AST_AS_Walk.With_st;
    newIter := M3AST_AS_Iter.With_st_newIter;
  END;
  Block = Previous_View.Block OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Block;
    name := M3AST_AS_Name.Block;
    walk := M3AST_AS_Walk.Block;
    newIter := M3AST_AS_Iter.Block_newIter;
  END;
  Case = Previous_View.Case OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Case;
    name := M3AST_AS_Name.Case;
    walk := M3AST_AS_Walk.Case;
    newIter := M3AST_AS_Iter.Case_newIter;
  END;
  Else_stm = Previous_View.Else_stm OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Else_stm;
    name := M3AST_AS_Name.Else_stm;
    walk := M3AST_AS_Walk.Else_stm;
    newIter := M3AST_AS_Iter.Else_stm_newIter;
  END;
  By = Previous_View.By OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.By;
    name := M3AST_AS_Name.By;
    walk := M3AST_AS_Walk.By;
    newIter := M3AST_AS_Iter.By_newIter;
  END;
  Elsif = Previous_View.Elsif OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Elsif;
    name := M3AST_AS_Name.Elsif;
    walk := M3AST_AS_Walk.Elsif;
    newIter := M3AST_AS_Iter.Elsif_newIter;
  END;
  Try_except = Previous_View.Try_except OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Try_except;
    name := M3AST_AS_Name.Try_except;
    walk := M3AST_AS_Walk.Try_except;
    newIter := M3AST_AS_Iter.Try_except_newIter;
  END;
  Try_finally = Previous_View.Try_finally OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Try_finally;
    name := M3AST_AS_Name.Try_finally;
    walk := M3AST_AS_Walk.Try_finally;
    newIter := M3AST_AS_Iter.Try_finally_newIter;
  END;
  Tcase = Previous_View.Tcase OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Tcase;
    name := M3AST_AS_Name.Tcase;
    walk := M3AST_AS_Walk.Tcase;
    newIter := M3AST_AS_Iter.Tcase_newIter;
  END;
  Handler = Previous_View.Handler OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Handler;
    name := M3AST_AS_Name.Handler;
    walk := M3AST_AS_Walk.Handler;
    newIter := M3AST_AS_Iter.Handler_newIter;
  END;
  Binding = Previous_View.Binding OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Binding;
    name := M3AST_AS_Name.Binding;
    walk := M3AST_AS_Walk.Binding;
    newIter := M3AST_AS_Iter.Binding_newIter;
  END;
  Bad_EXP = Previous_View.Bad_EXP OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Bad_EXP;
    name := M3AST_AS_Name.Bad_EXP;
  END;
  Bad_M3TYPE = Previous_View.Bad_M3TYPE OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Bad_M3TYPE;
    name := M3AST_AS_Name.Bad_M3TYPE;
  END;
  Bad_STM = Previous_View.Bad_STM OBJECT
  OVERRIDES
    copy := M3AST_AS_Copy.Bad_STM;
    name := M3AST_AS_Name.Bad_STM;
  END;

REVEAL
  M3AST_AS.Module_id <: Module_id;
  M3AST_AS.Interface_id <: Interface_id;
  M3AST_AS.F_Value_id <: F_Value_id;
  M3AST_AS.F_Var_id <: F_Var_id;
  M3AST_AS.F_Readonly_id <: F_Readonly_id;
  M3AST_AS.Type_id <: Type_id;
  M3AST_AS.Const_id <: Const_id;
  M3AST_AS.Var_id <: Var_id;
  M3AST_AS.Proc_id <: Proc_id;
  M3AST_AS.Enum_id <: Enum_id;
  M3AST_AS.Method_id <: Method_id;
  M3AST_AS.Field_id <: Field_id;
  M3AST_AS.For_id <: For_id;
  M3AST_AS.Handler_id <: Handler_id;
  M3AST_AS.Tcase_id <: Tcase_id;
  M3AST_AS.With_id <: With_id;
  M3AST_AS.Exc_id <: Exc_id;
  M3AST_AS.Used_interface_id <: Used_interface_id;
  M3AST_AS.Used_def_id <: Used_def_id;
  M3AST_AS.Qual_used_id <: Qual_used_id;
  M3AST_AS.Compilation_Unit <: Compilation_Unit;
  M3AST_AS.Interface_gen_def <: Interface_gen_def;
  M3AST_AS.Module_gen_def <: Module_gen_def;
  M3AST_AS.Interface <: Interface;
  M3AST_AS.Module <: Module;
  M3AST_AS.Interface_gen_ins <: Interface_gen_ins;
  M3AST_AS.Module_gen_ins <: Module_gen_ins;
  M3AST_AS.Unsafe <: Unsafe;
  M3AST_AS.Import_item <: Import_item;
  M3AST_AS.Simple_import <: Simple_import;
  M3AST_AS.From_import <: From_import;
  M3AST_AS.Revelation_s <: Revelation_s;
  M3AST_AS.Const_decl_s <: Const_decl_s;
  M3AST_AS.Type_decl_s <: Type_decl_s;
  M3AST_AS.Var_decl_s <: Var_decl_s;
  M3AST_AS.Exc_decl_s <: Exc_decl_s;
  M3AST_AS.Proc_decl <: Proc_decl;
  M3AST_AS.Const_decl <: Const_decl;
  M3AST_AS.Var_decl <: Var_decl;
  M3AST_AS.Exc_decl <: Exc_decl;
  M3AST_AS.Subtype_decl <: Subtype_decl;
  M3AST_AS.Concrete_decl <: Concrete_decl;
  M3AST_AS.Subtype_reveal <: Subtype_reveal;
  M3AST_AS.Concrete_reveal <: Concrete_reveal;
  M3AST_AS.Named_type <: Named_type;
  M3AST_AS.Integer_type <: Integer_type;
  M3AST_AS.Longint_type <: Longint_type;
  M3AST_AS.WideChar_type <: WideChar_type;
  M3AST_AS.Real_type <: Real_type;
  M3AST_AS.LongReal_type <: LongReal_type;
  M3AST_AS.Extended_type <: Extended_type;
  M3AST_AS.Null_type <: Null_type;
  M3AST_AS.RefAny_type <: RefAny_type;
  M3AST_AS.Address_type <: Address_type;
  M3AST_AS.Root_type <: Root_type;
  M3AST_AS.Enumeration_type <: Enumeration_type;
  M3AST_AS.Subrange_type <: Subrange_type;
  M3AST_AS.Array_type <: Array_type;
  M3AST_AS.Record_type <: Record_type;
  M3AST_AS.Object_type <: Object_type;
  M3AST_AS.Set_type <: Set_type;
  M3AST_AS.Procedure_type <: Procedure_type;
  M3AST_AS.Ref_type <: Ref_type;
  M3AST_AS.Packed_type <: Packed_type;
  M3AST_AS.Opaque_type <: Opaque_type;
  M3AST_AS.Brand <: Brand;
  M3AST_AS.Untraced <: Untraced;
  M3AST_AS.Fields <: Fields;
  M3AST_AS.Method <: Method;
  M3AST_AS.Override <: Override;
  M3AST_AS.Formal_param <: Formal_param;
  M3AST_AS.Raisees_some <: Raisees_some;
  M3AST_AS.Raisees_any <: Raisees_any;
  M3AST_AS.Range <: Range;
  M3AST_AS.Integer_literal <: Integer_literal;
  M3AST_AS.Longint_literal <: Longint_literal;
  M3AST_AS.Real_literal <: Real_literal;
  M3AST_AS.LongReal_literal <: LongReal_literal;
  M3AST_AS.Extended_literal <: Extended_literal;
  M3AST_AS.Text_literal <: Text_literal;
  M3AST_AS.WideText_literal <: WideText_literal;
  M3AST_AS.Char_literal <: Char_literal;
  M3AST_AS.WideChar_literal <: WideChar_literal;
  M3AST_AS.Nil_literal <: Nil_literal;
  M3AST_AS.Exp_used_id <: Exp_used_id;
  M3AST_AS.Constructor <: Constructor;
  M3AST_AS.Propagate <: Propagate;
  M3AST_AS.Plus <: Plus;
  M3AST_AS.Minus <: Minus;
  M3AST_AS.Times <: Times;
  M3AST_AS.Rdiv <: Rdiv;
  M3AST_AS.Textcat <: Textcat;
  M3AST_AS.Div <: Div;
  M3AST_AS.Mod <: Mod;
  M3AST_AS.Eq <: Eq;
  M3AST_AS.Ne <: Ne;
  M3AST_AS.Gt <: Gt;
  M3AST_AS.Lt <: Lt;
  M3AST_AS.Ge <: Ge;
  M3AST_AS.And <: And;
  M3AST_AS.Or <: Or;
  M3AST_AS.In <: In;
  M3AST_AS.Select <: Select;
  M3AST_AS.Not <: Not;
  M3AST_AS.Unaryplus <: Unaryplus;
  M3AST_AS.Unaryminus <: Unaryminus;
  M3AST_AS.Deref <: Deref;
  M3AST_AS.Call <: Call;
  M3AST_AS.NEWCall <: NEWCall;
  M3AST_AS.Index <: Index;
  M3AST_AS.Actual <: Actual;
  M3AST_AS.STM <: STM;
  M3AST_AS.Assign_st <: Assign_st;
  M3AST_AS.Call_st <: Call_st;
  M3AST_AS.Case_st <: Case_st;
  M3AST_AS.Eval_st <: Eval_st;
  M3AST_AS.Exit_st <: Exit_st;
  M3AST_AS.For_st <: For_st;
  M3AST_AS.If_st <: If_st;
  M3AST_AS.Lock_st <: Lock_st;
  M3AST_AS.Loop_st <: Loop_st;
  M3AST_AS.Raise_st <: Raise_st;
  M3AST_AS.Repeat_st <: Repeat_st;
  M3AST_AS.Return_st <: Return_st;
  M3AST_AS.Try_st <: Try_st;
  M3AST_AS.Typecase_st <: Typecase_st;
  M3AST_AS.While_st <: While_st;
  M3AST_AS.With_st <: With_st;
  M3AST_AS.Block <: Block;
  M3AST_AS.Case <: Case;
  M3AST_AS.Else_stm <: Else_stm;
  M3AST_AS.By <: By;
  M3AST_AS.Elsif <: Elsif;
  M3AST_AS.Try_except <: Try_except;
  M3AST_AS.Try_finally <: Try_finally;
  M3AST_AS.Tcase <: Tcase;
  M3AST_AS.Handler <: Handler;
  M3AST_AS.Binding <: Binding;
  M3AST_AS.Bad_EXP <: Bad_EXP;
  M3AST_AS.Bad_M3TYPE <: Bad_M3TYPE;
  M3AST_AS.Bad_STM <: Bad_STM;

TYPE
  (* Pass through names *)

  NODE = Previous_View.NODE;
  SRC_NODE = Previous_View.SRC_NODE;
  DEF_ID = Previous_View.DEF_ID;
  UNIT_ID = Previous_View.UNIT_ID;
  TYPED_ID = Previous_View.TYPED_ID;
  FORMAL_ID = Previous_View.FORMAL_ID;
  METHOD_OVERRIDE_ID = Previous_View.METHOD_OVERRIDE_ID;
  USED_ID = Previous_View.USED_ID;
  UNIT = Previous_View.UNIT;
  UNIT_GEN_DEF = Previous_View.UNIT_GEN_DEF;
  UNIT_GEN_INS = Previous_View.UNIT_GEN_INS;
  UNIT_NORMAL = Previous_View.UNIT_NORMAL;
  UNIT_WITH_BODY = Previous_View.UNIT_WITH_BODY;
  IMPORTED = Previous_View.IMPORTED;
  DECL_REVL = Previous_View.DECL_REVL;
  DECL = Previous_View.DECL;
  TYPE_DECL = Previous_View.TYPE_DECL;
  REVELATION = Previous_View.REVELATION;
  EXP_TYPE = Previous_View.EXP_TYPE;
  M3TYPE = Previous_View.M3TYPE;
  TYPE_SPEC = Previous_View.TYPE_SPEC;
  METHOD_OVERRIDE = Previous_View.METHOD_OVERRIDE;
  BRANDED_TYPE = Previous_View.BRANDED_TYPE;
  FLOAT_TYPE = Previous_View.FLOAT_TYPE;
  INT_TYPE = Previous_View.INT_TYPE;
  RAISEES = Previous_View.RAISEES;
  EXP = Previous_View.EXP;
  NUMERIC_LITERAL = Previous_View.NUMERIC_LITERAL;
  CONS_ELEM = Previous_View.CONS_ELEM;
  RANGE_EXP = Previous_View.RANGE_EXP;
  STM = Previous_View.STM;
  STM_WSS = Previous_View.STM_WSS;
  SUBSTM_WSS = Previous_View.SUBSTM_WSS;
  TRY_TAIL = Previous_View.TRY_TAIL;

END M3ASTOp_AS.