-# A method marked abstract
-# *deferred* is a old synonynmous of *abstract* that comes from PRM, that comes from Eiffel.
-class ADeferredMethPropdef
- super AMethPropdef
- readable var _n_kwmeth: TKwmeth
-end
-
-# A method marked intern
-class AInternMethPropdef
- super AMethPropdef
- readable var _n_kwmeth: TKwmeth
-end
-
-# A method of a constructor marked extern
-abstract class AExternPropdef
- super AMethPropdef
- readable var _n_extern: nullable TString = null
- readable var _n_extern_calls: nullable AExternCalls = null
- readable var _n_extern_code_block: nullable AExternCodeBlock = null
-end
-
-# A method marked extern
-class AExternMethPropdef
- super AExternPropdef
- readable var _n_kwmeth: TKwmeth
-end
-
-# A method with a body
-class AConcreteMethPropdef
- super AMethPropdef
- readable var _n_kwmeth: nullable TKwmeth
- readable var _n_block: nullable AExpr = null
-end
-
-# A constructor
-abstract class AInitPropdef
- super AMethPropdef
-end
-
-# A constructor with a body
-class AConcreteInitPropdef
- super AConcreteMethPropdef
- super AInitPropdef
- readable var _n_kwinit: TKwinit
- redef fun hot_location do return n_kwinit.location
-end
-
-# A constructor marked extern (defined with the `new` keyword)
-class AExternInitPropdef
- super AExternPropdef
- super AInitPropdef
- readable var _n_kwnew: TKwnew
-end
-