Merge: separate_compiler: Refactored class compilation
authorJean Privat <jean@pryen.org>
Mon, 16 Mar 2020 18:31:54 +0000 (14:31 -0400)
committerJean Privat <jean@pryen.org>
Mon, 16 Mar 2020 18:31:54 +0000 (14:31 -0400)
## Before
Before this update, the method `compile_class_to_c` handled every part
of the class compilation process even special case (universal class).
By doing so, we can't refined this method efficiently without
reimplementing the entire method. This is a pain since each time we
need to add universal class we have to modify the original code instead
of refining the compiler.

## After

The method `compile_class_to_c` has been divided in three main parts:

1. the class's vft compilation (same for every type of class)
2. the compilation of universal class specifics (change alot through
time). This part must managed every part of a universal type, except its
vft compilation which already handled by the 1st step.
3. the compilation of the default `NEW` allocator (apply only for
non-universal type).

Moreover, the state of a class compilation is stored in a new class
called `ClassCompilationInfo`, which has different flag to specify if
the class is dead/alive or need_corpse. This choice was made to prevent
dataclump in each method involved with the class compilation.

With this new way of managing class compilation, we can add new
universal class via refinement instead of code rewriting.

Signed-off-by: Louis-Vincent Boudreault <lv.boudreault95@gmail.com>

Pull-Request: #2808
Reviewed-by: Jean Privat <jean@pryen.org>

93 files changed:
contrib/pep8analysis/src/parser/lexer.nit
lib/bucketed_game/bucketed_game.nit
lib/core/collection/sorter.nit
src/compiler/abstract_compiler.nit
src/compiler/java_compiler.nit
src/doc/commands/tests/test_commands_http.nit
src/doc/commands/tests/test_commands_model.nit
src/doc/commands/tests/test_commands_parser.nit
src/doc/templates/html_model.nit
src/doc/templates/term_model.nit
src/doc/templates/tests/test_html_commands.sav/test_cmd_call.res
src/doc/templates/tests/test_html_commands.sav/test_cmd_features.res
src/doc/templates/tests/test_html_commands.sav/test_cmd_lin.res
src/doc/templates/tests/test_json_commands.sav/test_cmd_call.res
src/doc/templates/tests/test_json_commands.sav/test_cmd_features.res
src/doc/templates/tests/test_json_commands.sav/test_cmd_lin.res
src/doc/templates/tests/test_json_model.sav/test_propdefs_to_full_json.res
src/doc/templates/tests/test_json_model.sav/test_props_to_full_json.res
src/doc/templates/tests/test_md_commands.sav/test_cmd_call.res
src/doc/templates/tests/test_md_commands.sav/test_cmd_features.res
src/doc/templates/tests/test_md_commands.sav/test_cmd_lin.res
src/doc/term/tests/test_term.sav/test_call.res
src/doc/term/tests/test_term.sav/test_lin.res
src/doc/term/tests/test_term.sav/test_term_catalog_stats.res
src/interpreter/naive_interpreter.nit
src/metrics/ast_metrics.nit
src/metrics/static_types_metrics.nit
src/model/model.nit
src/modelize/modelize_property.nit
src/neo.nit
src/nitni/nitni_callbacks.nit
src/nitni/nitni_utilities.nit
src/rapid_type_analysis.nit
src/semantize/auto_super_init.nit
src/semantize/typing.nit
src/vm/vm_optimizations.nit
tests/base_attr_nullable.nit
tests/base_init_super_call2.nit
tests/base_simple3.nit
tests/error_defs_init.nit
tests/sav/base_arg_default_autoinit_alt1.res
tests/sav/base_attr_annot_1alt1.res
tests/sav/base_attr_annot_alt1.res
tests/sav/base_attr_nullable_alt1.res
tests/sav/base_attr_nullable_alt2.res
tests/sav/base_attr_nullable_alt3.res
tests/sav/base_attr_nullable_alt4.res
tests/sav/base_attr_nullable_alt5.res
tests/sav/base_init_basic_alt3.res
tests/sav/base_init_basic_alt5.res
tests/sav/base_init_combine_alt1.res
tests/sav/base_init_noinit_alt4.res
tests/sav/base_init_super_call2_alt3.res
tests/sav/base_init_super_call2_alt4.res
tests/sav/base_init_super_call2_alt5.res
tests/sav/base_init_super_call2_alt6.res
tests/sav/base_init_super_call_alt3.res
tests/sav/base_new_alt8.res
tests/sav/base_vararg_mult_alt1.res
tests/sav/error_class_glob.res
tests/sav/error_defs_init_1alt1_alt2.res
tests/sav/error_defs_init_1alt2_alt1.res
tests/sav/error_defs_init_1alt2_alt2.res
tests/sav/error_init_auto.res
tests/sav/error_init_auto_alt1.res
tests/sav/error_init_auto_alt2.res
tests/sav/error_init_auto_alt3.res
tests/sav/error_init_auto_alt4.res
tests/sav/nitcatalog_args1.res
tests/sav/nitdoc_args1.res
tests/sav/nitdoc_args2.res
tests/sav/nitdoc_args3.res
tests/sav/nitdoc_args4.res
tests/sav/nitlight_args1.res
tests/sav/nitlight_args2.res
tests/sav/nitlight_args3.res
tests/sav/nitlight_args4.res
tests/sav/nitlight_args5.res
tests/sav/nitmetrics_args1.res
tests/sav/nitsmells_args1.res
tests/sav/nitsmells_args3.res
tests/sav/nituml_args1.res
tests/sav/nituml_args2.res
tests/sav/nituml_args3.res
tests/sav/nituml_args4.res
tests/sav/nitx_args2.res
tests/sav/nitx_args3.res
tests/sav/test_highlight_args1.res
tests/sav/test_model_index_args16.res
tests/sav/test_model_visitor_args1.res
tests/sav/test_model_visitor_args2.res
tests/sav/test_neo_args1.res
tests/sav/test_test_phase_args1.res

index c663dcd..f985cf7 100644 (file)
@@ -255,7 +255,7 @@ redef class AError
 
     init init_error(message: String, loc: Location)
     do
-               init(loc)
+               self.location = loc
                self.message = message
     end
 end
index 213d875..58569ac 100644 (file)
@@ -171,9 +171,12 @@ class GameTurn[G: Game]
        var game: G
 
        # Create a new game turn for `game`.
-       init (game: G) is old_style_init do
-               super(game.tick)
-               self.game = game
+       init(game: G)
+       is
+               is_old_style_init
+       do
+               _tick = game.tick
+               _game = game
        end
 
        # Insert the Bucketable event `e` to be executed at next tick.
index 9157995..7476b6f 100644 (file)
@@ -106,7 +106,14 @@ interface Comparator
        #     var a = [5, 2, 3, 1, 4]
        #     default_comparator.quick_sort(a, 0, a.length - 1)
        #     assert a == [1, 2, 3, 4, 5]
+       #     var a2 = new Array[Int]
+       #     default_comparator.quick_sort(a2, 0, a2.length - 1)
+       #     assert a2 == new Array[Int]
+       #     var a3 = [1]
+       #     default_comparator.quick_sort(a3, 0, a3.length - 1)
+       #     assert a3 == [1]
        fun quick_sort(array: Array[COMPARED], from: Int, to: Int) do
+               if from >= to then return
                var pivot = array[from]
                var i = from
                var j = to
index 57e738f..e4b8ce6 100644 (file)
@@ -1353,29 +1353,6 @@ abstract class AbstractCompilerVisitor
        fun compile_callsite(callsite: CallSite, arguments: Array[RuntimeVariable]): nullable RuntimeVariable
        do
                if callsite.is_broken then return null
-               var initializers = callsite.mpropdef.initializers
-               if not initializers.is_empty then
-                       var recv = arguments.first
-
-                       var i = 1
-                       for p in initializers do
-                               if p isa MMethod then
-                                       var args = [recv]
-                                       for x in p.intro.msignature.mparameters do
-                                               args.add arguments[i]
-                                               i += 1
-                                       end
-                                       self.send(p, args)
-                               else if p isa MAttribute then
-                                       self.write_attribute(p, recv, arguments[i])
-                                       i += 1
-                               else abort
-                       end
-                       assert i == arguments.length
-
-                       return self.send(callsite.mproperty, [recv])
-               end
-
                return self.send(callsite.mproperty, arguments)
        end
 
@@ -1412,7 +1389,7 @@ abstract class AbstractCompilerVisitor
        # of runtime variables to use in the call.
        fun varargize(mpropdef: MMethodDef, map: nullable SignatureMap, recv: RuntimeVariable, args: SequenceRead[AExpr]): Array[RuntimeVariable]
        do
-               var msignature = mpropdef.new_msignature or else mpropdef.msignature.as(not null)
+               var msignature = mpropdef.msignature.as(not null)
                var res = new Array[RuntimeVariable]
                res.add(recv)
 
@@ -3710,6 +3687,31 @@ redef class AClassdef
                                v.supercall(mpropdef, arguments.first.mtype.as(MClassType), arguments)
                        end
                        return
+               else if mclassdef.default_init == mpropdef then
+                       var recv = arguments.first
+                       var initializers = mpropdef.initializers
+                       var no_init = false
+                       if not initializers.is_empty and not mpropdef.is_old_style_init then
+                               var i = 1
+                               for p in initializers do
+                                       if p isa MMethod then
+                                               var args = [recv]
+                                               for x in p.intro.msignature.mparameters do
+                                                       args.add arguments[i]
+                                                       i += 1
+                                               end
+                                               v.send(p, args)
+                                               if p.intro.is_calling_init then no_init = true
+                                       else if p isa MAttribute then
+                                               v.write_attribute(p, recv, arguments[i])
+                                               i += 1
+                                       else abort
+                               end
+                               assert i == arguments.length
+
+                       end
+                       if not no_init then v.send(mclass.the_root_init_mmethod.as(not null), [recv])
+                       return
                else
                        abort
                end
index 60aea2b..7b83104 100644 (file)
@@ -497,7 +497,7 @@ class JavaCompilerVisitor
        # This method is used to manage varargs in signatures and returns the real array
        # of runtime variables to use in the call.
        fun varargize(mpropdef: MMethodDef, map: nullable SignatureMap, recv: RuntimeVariable, args: SequenceRead[AExpr]): Array[RuntimeVariable] do
-               var msignature = mpropdef.new_msignature or else mpropdef.msignature.as(not null)
+               var msignature = mpropdef.msignature.as(not null)
                var res = new Array[RuntimeVariable]
                res.add(recv)
 
index 57f5dd6..1f51238 100644 (file)
@@ -205,7 +205,7 @@ class TestCommandsHttp
                var cmd = new CmdFeatures(test_model)
                var res = cmd.http_init(req)
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 3
+               assert cmd.results.as(not null).length == 4
        end
 
        # CmdLinearization
@@ -215,7 +215,7 @@ class TestCommandsHttp
                var cmd = new CmdLinearization(test_model, test_main)
                var res = cmd.http_init(req)
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 10
+               assert cmd.results.as(not null).length == 9
        end
 
        fun test_cmd_http_lin_no_lin is test do
index 4847987..0ee6952 100644 (file)
@@ -181,7 +181,7 @@ class TestCommandsModel
                var cmd = new CmdFeatures(test_model, mentity_name = "test_prog::Career")
                var res = cmd.init_command
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 10
+               assert cmd.results.as(not null).length == 11
        end
 
        fun test_cmd_features_with_filter_attribute is test do
@@ -189,7 +189,7 @@ class TestCommandsModel
                var cmd = new CmdFeatures(test_model, filter, mentity_name = "test_prog::Career")
                var res = cmd.init_command
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 7
+               assert cmd.results.as(not null).length == 8
        end
 
        fun test_cmd_features_with_filter_public is test do
@@ -197,7 +197,7 @@ class TestCommandsModel
                var cmd = new CmdFeatures(test_model, filter, mentity_name = "test_prog::Career")
                var res = cmd.init_command
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 4
+               assert cmd.results.as(not null).length == 5
        end
 
        fun test_cmd_features_with_filter_match is test do
@@ -214,7 +214,7 @@ class TestCommandsModel
                var cmd = new CmdFeatures(test_model, filter, mentity_name = "test_prog::TestGame")
                var res = cmd.init_command
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 3
+               assert cmd.results.as(not null).length == 4
        end
 
        fun test_cmd_features_no_features is test do
@@ -229,7 +229,7 @@ class TestCommandsModel
                var cmd = new CmdLinearization(test_model, test_main, mentity_name = "init")
                var res = cmd.init_command
                assert res isa CmdSuccess
-               assert cmd.results.as(not null).length == 10
+               assert cmd.results.as(not null).length == 9
        end
 
        fun test_cmd_lin_no_lin is test do
index 41cc36b..f5d6699 100644 (file)
@@ -239,7 +239,7 @@ class TestCommandsParser
                var cmd = parser.parse("defs: test_prog::TestGame | inherited: TestGame")
                assert cmd isa CmdFeatures
                assert parser.error == null
-               assert cmd.results.as(not null).length == 3
+               assert cmd.results.as(not null).length == 4
        end
 
        # CmdLinearization
index 1b86587..90cd190 100644 (file)
@@ -251,10 +251,6 @@ end
 
 redef class MMethodDef
        redef fun html_signature(short) do
-               var new_msignature = self.new_msignature
-               if mproperty.is_root_init and new_msignature != null then
-                       return new_msignature.html_signature(short)
-               end
                var msignature = self.msignature
                if msignature == null then return new Template
                return msignature.html_signature(short)
index 55351fb..b33ce7f 100644 (file)
@@ -199,9 +199,6 @@ end
 
 redef class MMethodDef
        redef fun cs_signature(no_color) do
-               if mproperty.is_root_init then
-                       return new_msignature.as(not null).cs_signature(no_color)
-               end
                return msignature.as(not null).cs_signature(no_color)
        end
 end
index 6663e41..ab2acab 100644 (file)
@@ -1 +1 @@
-<ul><li><a href="test_prog_36dCharacter_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dCharacter_36dtotal_strengh" title="The actual strength of the character.">total_strengh</a> - <span class="synopsis nitdoc">The actual strength of the character.</span></li></ul>
+<ul><li><a href="test_prog_36dCharacter_36ddefaultinit">defaultinit</a></li><li><a href="test_prog_36dCharacter_36dtotal_strengh" title="The actual strength of the character.">total_strengh</a> - <span class="synopsis nitdoc">The actual strength of the character.</span></li></ul>
index 8904ee1..2f71284 100644 (file)
@@ -1 +1 @@
-<ul><li><a href="test_prog_58d_58dcareers_58d_58dCareer_58d_58d_endurance_bonus">_endurance_bonus</a></li><li><a href="test_prog_58d_58dcareers_58d_58dCareer_58d_58d_intelligence_bonus">_intelligence_bonus</a></li><li><a href="test_prog_58d_58dcareers_58d_58dCareer_58d_58d_strength_bonus">_strength_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dendurance_bonus">endurance_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dendurance_bonus_61d">endurance_bonus=</a></li><li><a href="test_prog_36dCareer_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_58d_58dCareer_58d_58dintelligence_bonus">intelligence_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dintelligence_bonus_61d">intelligence_bonus=</a></li><li><a href="test_prog_58d_58dCareer_58d_58dstrength_bonus">strength_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dstrength_bonus_61d">strength_bonus=</a></li></ul>
+<ul><li><a href="test_prog_58d_58dcareers_58d_58dCareer_58d_58d_endurance_bonus">_endurance_bonus</a></li><li><a href="test_prog_58d_58dcareers_58d_58dCareer_58d_58d_intelligence_bonus">_intelligence_bonus</a></li><li><a href="test_prog_58d_58dcareers_58d_58dCareer_58d_58d_strength_bonus">_strength_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58ddefaultinit">defaultinit</a></li><li><a href="test_prog_58d_58dCareer_58d_58dendurance_bonus">endurance_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dendurance_bonus_61d">endurance_bonus=</a></li><li><a href="test_prog_36dCareer_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_58d_58dCareer_58d_58dintelligence_bonus">intelligence_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dintelligence_bonus_61d">intelligence_bonus=</a></li><li><a href="test_prog_58d_58dCareer_58d_58dstrength_bonus">strength_bonus</a></li><li><a href="test_prog_58d_58dCareer_58d_58dstrength_bonus_61d">strength_bonus=</a></li></ul>
index 3ae2de3..c7f7cf4 100644 (file)
@@ -1 +1 @@
-<ul><li><a href="test_prog_36dObject_36dinit">init</a></li><li><a href="test_prog_36dRace_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dCareer_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dHuman_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dElf_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dWarrior_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dMagician_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dAlcoholic_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dCharacter_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dDwarf_36dObject_58d_58dinit">init</a></li></ul>
+<ul><li><a href="test_prog_36dObject_36dinit">init</a></li><li><a href="test_prog_36dRace_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dCareer_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dHuman_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dElf_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dWarrior_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dMagician_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dAlcoholic_36dObject_58d_58dinit">init</a></li><li><a href="test_prog_36dDwarf_36dObject_58d_58dinit">init</a></li></ul>
index 0b60952..087789a 100644 (file)
@@ -1,6 +1,6 @@
 {
        "results": [{
-               "name": "init",
+               "name": "defaultinit",
                "namespace": [{
                        "name": "test_prog",
                        "synopsis": "Test program for model tools."
@@ -8,18 +8,48 @@
                        "name": "Character",
                        "synopsis": "Characters can be played by both the human or the machine."
                }, "$", {
-                       "name": "Object",
-                       "synopsis": "Root of everything."
-               }, "::", {
-                       "name": "init"
+                       "name": "defaultinit"
                }],
                "class_name": "MMethodDef",
-               "full_name": "test_prog$Character$Object::init",
+               "full_name": "test_prog$Character$defaultinit",
                "visibility": "public",
-               "modifiers": ["redef", "init"],
+               "modifiers": ["init"],
+               "is_intro": true,
                "msignature": {
-                       "arity": 0,
-                       "mparameters": [],
+                       "arity": 4,
+                       "mparameters": [{
+                               "is_vararg": false,
+                               "name": "race",
+                               "mtype": {
+                                       "name": "Race",
+                                       "synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+                               }
+                       }, {
+                               "is_vararg": false,
+                               "name": "name",
+                               "mtype": {
+                                       "name": "String",
+                                       "synopsis": "Strings (there is no chars...).",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
+                               }
+                       }, {
+                               "is_vararg": false,
+                               "name": "age",
+                               "mtype": {
+                                       "name": "Int",
+                                       "synopsis": "Some services about Integers.",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                               }
+                       }, {
+                               "is_vararg": false,
+                               "name": "sex",
+                               "mtype": {
+                                       "name": "Bool",
+                                       "synopsis": "Booleans, `true` or `false`.",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+                               }
+                       }],
                        "return_mtype": null
                }
        }, {
index 88019d8..e07fe59 100644 (file)
                        "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
                }
        }, {
+               "name": "defaultinit",
+               "namespace": [{
+                       "name": "test_prog",
+                       "synopsis": "Test program for model tools."
+               }, "::", {
+                       "name": "Career",
+                       "synopsis": "A `Career` gives a characteristic bonus or malus to the character."
+               }, "::", {
+                       "name": "defaultinit"
+               }],
+               "class_name": "MMethod",
+               "full_name": "test_prog::Career::defaultinit",
+               "visibility": "public",
+               "modifiers": ["init"],
+               "is_init": true,
+               "msignature": {
+                       "arity": 3,
+                       "mparameters": [{
+                               "is_vararg": false,
+                               "name": "strength_bonus",
+                               "mtype": {
+                                       "name": "Int",
+                                       "synopsis": "Some services about Integers.",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                               }
+                       }, {
+                               "is_vararg": false,
+                               "name": "endurance_bonus",
+                               "mtype": {
+                                       "name": "Int",
+                                       "synopsis": "Some services about Integers.",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                               }
+                       }, {
+                               "is_vararg": false,
+                               "name": "intelligence_bonus",
+                               "mtype": {
+                                       "name": "Int",
+                                       "synopsis": "Some services about Integers.",
+                                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                               }
+                       }],
+                       "return_mtype": null
+               }
+       }, {
                "name": "endurance_bonus",
                "namespace": [{
                        "name": "test_prog",
index c7ddd5a..957889a 100644 (file)
                        "name": "test_prog",
                        "synopsis": "Test program for model tools."
                }, "$", {
-                       "name": "Character",
-                       "synopsis": "Characters can be played by both the human or the machine."
-               }, "$", {
-                       "name": "Object",
-                       "synopsis": "Root of everything."
-               }, "::", {
-                       "name": "init"
-               }],
-               "class_name": "MMethodDef",
-               "full_name": "test_prog$Character$Object::init",
-               "visibility": "public",
-               "modifiers": ["redef", "init"],
-               "msignature": {
-                       "arity": 0,
-                       "mparameters": [],
-                       "return_mtype": null
-               }
-       }, {
-               "name": "init",
-               "namespace": [{
-                       "name": "test_prog",
-                       "synopsis": "Test program for model tools."
-               }, "$", {
                        "name": "Dwarf",
                        "synopsis": "Dwarves make strong warriors."
                }, "$", {
index 802b1ec..126aca2 100644 (file)
        }
 }
 {
-       "name": "init",
+       "name": "defaultinit",
        "namespace": [{
                "name": "test_prog",
                "synopsis": "Test program for model tools."
        }, "$", {
-               "name": "Character",
-               "synopsis": "Characters can be played by both the human or the machine."
-       }, "$", {
                "name": "Object",
                "synopsis": "Root of everything."
-       }, "::", {
-               "name": "init"
+       }, "$", {
+               "name": "defaultinit"
        }],
        "class_name": "MMethodDef",
-       "full_name": "test_prog$Character$Object::init",
+       "full_name": "test_prog$Object$defaultinit",
        "visibility": "public",
-       "modifiers": ["redef", "init"],
+       "modifiers": ["init"],
+       "is_intro": true,
        "msignature": {
                "arity": 0,
                "mparameters": [],
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Int",
+               "synopsis": "Some services about Integers."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Int$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "+",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Float",
+               "synopsis": "Some services about Floats."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Float$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Bool",
+               "synopsis": "Booleans, `true` or `false`."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Bool$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "String",
+               "synopsis": "Strings (there is no chars...)."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$String$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "List",
+               "synopsis": "List of things."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$List$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "main",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Sys",
+               "synopsis": "Sys"
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Sys$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "_strength_bonus",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Career",
+               "synopsis": "A `Career` gives a characteristic bonus or malus to the character."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Career$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Warrior",
+               "synopsis": "Warriors are good for fighting."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Warrior$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Magician",
+               "synopsis": "Magicians know magic and how to use it."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Magician$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Alcoholic",
+               "synopsis": "Alcoholics are good to nothing escept taking punches."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Alcoholic$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
        "name": "_base_strength",
        "synopsis": "Used to represents how strong the race is.",
        "namespace": [{
        }
 }
 {
-       "name": "base_intelligence",
-       "synopsis": "Is this race smart?",
+       "name": "base_intelligence",
+       "synopsis": "Is this race smart?",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Race",
+               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+       }, "$", {
+               "name": "base_intelligence",
+               "synopsis": "Is this race smart?"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Race$base_intelligence",
+       "visibility": "public",
+       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
+       "modifiers": ["fun"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": {
+                       "name": "Int",
+                       "synopsis": "Some services about Integers.",
+                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+               }
+       }
+}
+{
+       "name": "base_intelligence=",
+       "synopsis": "Is this race smart?",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Race",
+               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+       }, "$", {
+               "name": "base_intelligence=",
+               "synopsis": "Is this race smart?"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Race$base_intelligence=",
+       "visibility": "protected",
+       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
+       "modifiers": ["protected", "fun"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 1,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Race",
+               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Race$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Human",
+               "synopsis": "Humans are able to do everithing."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Human$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
        "namespace": [{
                "name": "test_prog",
                "synopsis": "Test program for model tools."
        }, "$", {
-               "name": "Race",
-               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+               "name": "Dwarf",
+               "synopsis": "Dwarves make strong warriors."
        }, "$", {
-               "name": "base_intelligence",
-               "synopsis": "Is this race smart?"
+               "name": "defaultinit"
        }],
        "class_name": "MMethodDef",
-       "full_name": "test_prog$Race$base_intelligence",
+       "full_name": "test_prog$Dwarf$defaultinit",
        "visibility": "public",
-       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
-       "modifiers": ["fun"],
+       "modifiers": ["init"],
        "is_intro": true,
        "msignature": {
-               "arity": 0,
-               "mparameters": [],
-               "return_mtype": {
-                       "name": "Int",
-                       "synopsis": "Some services about Integers.",
-                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
-               }
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
        }
 }
 {
-       "name": "base_intelligence=",
-       "synopsis": "Is this race smart?",
+       "name": "defaultinit",
        "namespace": [{
                "name": "test_prog",
                "synopsis": "Test program for model tools."
        }, "$", {
-               "name": "Race",
-               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+               "name": "Elf",
+               "synopsis": "Elves make good magicians."
        }, "$", {
-               "name": "base_intelligence=",
-               "synopsis": "Is this race smart?"
+               "name": "defaultinit"
        }],
        "class_name": "MMethodDef",
-       "full_name": "test_prog$Race$base_intelligence=",
-       "visibility": "protected",
-       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
-       "modifiers": ["protected", "fun"],
+       "full_name": "test_prog$Elf$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
        "is_intro": true,
        "msignature": {
-               "arity": 1,
+               "arity": 3,
                "mparameters": [{
                        "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
                        "name": "base_intelligence",
                        "mtype": {
                                "name": "Int",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Character",
+               "synopsis": "Characters can be played by both the human or the machine."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Character$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 4,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "race",
+                       "mtype": {
+                               "name": "Race",
+                               "synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "name",
+                       "mtype": {
+                               "name": "String",
+                               "synopsis": "Strings (there is no chars...).",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "age",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "sex",
+                       "mtype": {
+                               "name": "Bool",
+                               "synopsis": "Booleans, `true` or `false`.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
        "name": "dps",
        "synopsis": "Damage per second inflicted by this weapon.",
        "namespace": [{
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Weapon",
+               "synopsis": "Something that can be used to attack someone and inflict damage."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Weapon$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "hit_points",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Combatable",
+               "synopsis": "Something that can be combatted, it can `attack` and `defend`."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Combatable$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "player_characters",
        "synopsis": "Characters played by human players.",
        "namespace": [{
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Game",
+               "synopsis": "This is the interface you have to implement to use ure gaming platform."
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Game$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "_player_characters",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "MyGame",
+               "synopsis": "This is an example of how to implement the Game interface"
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$MyGame$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "start",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "Starter"
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$Starter$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "_player_characters",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "TestGame"
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$TestGame$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "test_game",
        "namespace": [{
                "name": "test_prog",
                "return_mtype": null
        }
 }
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "$", {
+               "name": "GameTest"
+       }, "$", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethodDef",
+       "full_name": "test_prog$GameTest$defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_intro": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
index 09644aa..4b49e79 100644 (file)
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Object",
+               "synopsis": "Root of everything."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Object::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "unary -",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Int",
+               "synopsis": "Some services about Integers."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Int::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "+",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Float",
+               "synopsis": "Some services about Floats."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Float::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Bool",
+               "synopsis": "Booleans, `true` or `false`."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Bool::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "String",
+               "synopsis": "Strings (there is no chars...)."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::String::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "List",
+               "synopsis": "List of things."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::List::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "main",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Sys",
+               "synopsis": "Sys"
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Sys::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "_strength_bonus",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Career",
+               "synopsis": "A `Career` gives a characteristic bonus or malus to the character."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Career::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Warrior",
+               "synopsis": "Warriors are good for fighting."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Warrior::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Magician",
+               "synopsis": "Magicians know magic and how to use it."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Magician::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Alcoholic",
+               "synopsis": "Alcoholics are good to nothing escept taking punches."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Alcoholic::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "strength_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "endurance_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "intelligence_bonus",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
        "name": "_base_strength",
        "synopsis": "Used to represents how strong the race is.",
        "namespace": [{
        }
 }
 {
-       "name": "base_intelligence",
-       "synopsis": "Is this race smart?",
+       "name": "base_intelligence",
+       "synopsis": "Is this race smart?",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Race",
+               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+       }, "::", {
+               "name": "base_intelligence",
+               "synopsis": "Is this race smart?"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Race::base_intelligence",
+       "visibility": "public",
+       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
+       "modifiers": ["fun"],
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": {
+                       "name": "Int",
+                       "synopsis": "Some services about Integers.",
+                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+               }
+       }
+}
+{
+       "name": "base_intelligence=",
+       "synopsis": "Is this race smart?",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Race",
+               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+       }, "::", {
+               "name": "base_intelligence=",
+               "synopsis": "Is this race smart?"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Race::base_intelligence=",
+       "visibility": "protected",
+       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
+       "modifiers": ["protected", "fun"],
+       "msignature": {
+               "arity": 1,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Race",
+               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Race::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Human",
+               "synopsis": "Humans are able to do everithing."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Human::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
+       "name": "defaultinit",
        "namespace": [{
                "name": "test_prog",
                "synopsis": "Test program for model tools."
        }, "::", {
-               "name": "Race",
-               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+               "name": "Dwarf",
+               "synopsis": "Dwarves make strong warriors."
        }, "::", {
-               "name": "base_intelligence",
-               "synopsis": "Is this race smart?"
+               "name": "defaultinit"
        }],
        "class_name": "MMethod",
-       "full_name": "test_prog::Race::base_intelligence",
+       "full_name": "test_prog::Dwarf::defaultinit",
        "visibility": "public",
-       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
-       "modifiers": ["fun"],
+       "modifiers": ["init"],
+       "is_init": true,
        "msignature": {
-               "arity": 0,
-               "mparameters": [],
-               "return_mtype": {
-                       "name": "Int",
-                       "synopsis": "Some services about Integers.",
-                       "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
-               }
+               "arity": 3,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_intelligence",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }],
+               "return_mtype": null
        }
 }
 {
-       "name": "base_intelligence=",
-       "synopsis": "Is this race smart?",
+       "name": "defaultinit",
        "namespace": [{
                "name": "test_prog",
                "synopsis": "Test program for model tools."
        }, "::", {
-               "name": "Race",
-               "synopsis": "Race determines basic characteristics and what the character will be able to do in life."
+               "name": "Elf",
+               "synopsis": "Elves make good magicians."
        }, "::", {
-               "name": "base_intelligence=",
-               "synopsis": "Is this race smart?"
+               "name": "defaultinit"
        }],
        "class_name": "MMethod",
-       "full_name": "test_prog::Race::base_intelligence=",
-       "visibility": "protected",
-       "html_synopsis": "<span class=\"synopsis nitdoc\">Is this race smart?</span>",
-       "modifiers": ["protected", "fun"],
+       "full_name": "test_prog::Elf::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
        "msignature": {
-               "arity": 1,
+               "arity": 3,
                "mparameters": [{
                        "is_vararg": false,
+                       "name": "base_strength",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "base_endurance",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
                        "name": "base_intelligence",
                        "mtype": {
                                "name": "Int",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Character",
+               "synopsis": "Characters can be played by both the human or the machine."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Character::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 4,
+               "mparameters": [{
+                       "is_vararg": false,
+                       "name": "race",
+                       "mtype": {
+                               "name": "Race",
+                               "synopsis": "Race determines basic characteristics and what the character will be able to do in life.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Race determines basic characteristics and what the character will be able to do in life.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "name",
+                       "mtype": {
+                               "name": "String",
+                               "synopsis": "Strings (there is no chars...).",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Strings (there is no chars...).</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "age",
+                       "mtype": {
+                               "name": "Int",
+                               "synopsis": "Some services about Integers.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Some services about Integers.</span>"
+                       }
+               }, {
+                       "is_vararg": false,
+                       "name": "sex",
+                       "mtype": {
+                               "name": "Bool",
+                               "synopsis": "Booleans, `true` or `false`.",
+                               "html_synopsis": "<span class=\"synopsis nitdoc\">Booleans, <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">true</span></span></span></code> or <code class=\"nitcode\"><span class=\"nitcode\"><span class=\"line\"><span class=\"nc_k\">false</span></span></span></code>.</span>"
+                       }
+               }],
+               "return_mtype": null
+       }
+}
+{
        "name": "dps",
        "synopsis": "Damage per second inflicted by this weapon.",
        "namespace": [{
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Weapon",
+               "synopsis": "Something that can be used to attack someone and inflict damage."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Weapon::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "hit_points",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Combatable",
+               "synopsis": "Something that can be combatted, it can `attack` and `defend`."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Combatable::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "player_characters",
        "synopsis": "Characters played by human players.",
        "namespace": [{
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Game",
+               "synopsis": "This is the interface you have to implement to use ure gaming platform."
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Game::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "_player_characters",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "MyGame",
+               "synopsis": "This is an example of how to implement the Game interface"
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::MyGame::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "start",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "Starter"
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::Starter::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "_player_characters",
        "namespace": [{
                "name": "test_prog",
        }
 }
 {
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "TestGame"
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::TestGame::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
+{
        "name": "test_game",
        "namespace": [{
                "name": "test_prog",
                "return_mtype": null
        }
 }
+{
+       "name": "defaultinit",
+       "namespace": [{
+               "name": "test_prog",
+               "synopsis": "Test program for model tools."
+       }, "::", {
+               "name": "GameTest"
+       }, "::", {
+               "name": "defaultinit"
+       }],
+       "class_name": "MMethod",
+       "full_name": "test_prog::GameTest::defaultinit",
+       "visibility": "public",
+       "modifiers": ["init"],
+       "is_init": true,
+       "msignature": {
+               "arity": 0,
+               "mparameters": [],
+               "return_mtype": null
+       }
+}
index 3ed3eb0..91c5ae8 100644 (file)
@@ -1,2 +1,2 @@
-* `character$Character$init`
+* `character$Character$defaultinit`
 * `character$Character$total_strengh` - The actual strength of the character.
index cfabfc6..9d0a142 100644 (file)
@@ -1,6 +1,7 @@
 * `_endurance_bonus`
 * `_intelligence_bonus`
 * `_strength_bonus`
+* `defaultinit`
 * `endurance_bonus`
 * `endurance_bonus=`
 * `careers$Career$init`
index 4f36fb0..c7b37e8 100644 (file)
@@ -6,5 +6,4 @@
 * `careers$Warrior$init`
 * `careers$Magician$init`
 * `careers$Alcoholic$init`
-* `character$Character$init`
 * `races$Dwarf$init`
index ac3c732..0947bc2 100644 (file)
@@ -1,7 +1,7 @@
 Methods calling `test_prog::Career::endurance_bonus`:
 
- * test_prog$Character$Object::init
-   redef init init(race: Race, name: String, age: Int, sex: Bool)
+ + test_prog$Character$defaultinit
+   init defaultinit(race: Race, name: String, age: Int, sex: Bool)
    test_location
 
  + test_prog$Character$total_endurance
index 23e94dc..532b2e3 100644 (file)
@@ -5,6 +5,6 @@ Linearization for `test_prog::Object::init`:
    test_location
 
  * test_prog$Race$Object::init
-   redef init init(base_strength: Int, base_endurance: Int, base_intelligence: Int)
+   redef init init
    test_location
 
index c8a157d..47521e8 100644 (file)
@@ -1,7 +1,7 @@
 Catalog statistics:
  * 2 packages
  * 11 modules
- * 79 methods
+ * 101 methods
  * 26 classes
  * 509 lines of code
  * 6 contributors
index 7557da7..527f16e 100644 (file)
@@ -490,7 +490,7 @@ class NaiveInterpreter
        # Return `null` if one of the evaluation of the arguments return null.
        fun varargize(mpropdef: MMethodDef, map: nullable SignatureMap, recv: Instance, args: SequenceRead[AExpr]): nullable Array[Instance]
        do
-               var msignature = mpropdef.new_msignature or else mpropdef.msignature.as(not null)
+               var msignature = mpropdef.msignature.as(not null)
                var res = new Array[Instance]
                res.add(recv)
 
@@ -615,28 +615,6 @@ class NaiveInterpreter
        fun callsite(callsite: nullable CallSite, arguments: Array[Instance]): nullable Instance
        do
                if callsite == null then return null
-               var initializers = callsite.mpropdef.initializers
-               if not initializers.is_empty then
-                       var recv = arguments.first
-                       var i = 1
-                       for p in initializers do
-                               if p isa MMethod then
-                                       var args = [recv]
-                                       for x in p.intro.msignature.mparameters do
-                                               args.add arguments[i]
-                                               i += 1
-                                       end
-                                       self.send(p, args)
-                               else if p isa MAttribute then
-                                       assert recv isa MutableInstance
-                                       write_attribute(p, recv, arguments[i])
-                                       i += 1
-                               else abort
-                       end
-                       assert i == arguments.length
-
-                       return send(callsite.mproperty, [recv])
-               end
                return send(callsite.mproperty, arguments)
        end
 
@@ -1657,6 +1635,31 @@ redef class AClassdef
                                v.call(superpd, arguments)
                        end
                        return null
+               else if mclassdef.default_init == mpropdef then
+                       var recv = arguments.first
+                       var initializers = mpropdef.initializers
+                       var no_init = false
+                       if not initializers.is_empty and not mpropdef.is_old_style_init then
+                               var i = 1
+                               for p in initializers do
+                                       if p isa MMethod then
+                                               var args = [recv]
+                                               for x in p.intro.msignature.mparameters do
+                                                       args.add arguments[i]
+                                                       i += 1
+                                               end
+                                               v.send(p, args)
+                                               if p.intro.is_calling_init then no_init = true
+                                       else if p isa MAttribute then
+                                               assert recv isa MutableInstance
+                                               v.write_attribute(p, recv, arguments[i])
+                                               i += 1
+                                       else abort
+                               end
+                               assert i == arguments.length
+                       end
+                       if not no_init then v.send(mclass.the_root_init_mmethod.as(not null), [recv])
+                       return null
                else
                        abort
                end
index d34899e..e5f1e10 100644 (file)
@@ -49,7 +49,6 @@ private class AstMetricsVisitor
        super Visitor
 
        var phase: AstMetricsPhase
-       init(phase: AstMetricsPhase) do self.phase = phase
 
        redef fun visit(n)
        do
index 45c429b..4dd38d0 100644 (file)
@@ -41,14 +41,6 @@ private class ATypeCounterVisitor
 
        var typecount: Counter[MType]
 
-       # Get a new visitor on a classef to add type count in `typecount`.
-       init(modelbuilder: ModelBuilder, nclassdef: AClassdef, typecount: Counter[MType])
-       do
-               self.modelbuilder = modelbuilder
-               self.nclassdef = nclassdef
-               self.typecount = typecount
-       end
-
        redef fun visit(n)
        do
                if n isa AAnnotation then return
index e3fa3fd..e22ae84 100644 (file)
@@ -778,9 +778,44 @@ class MClassDef
        # All property introductions and redefinitions in `self` (not inheritance).
        var mpropdefs = new Array[MPropDef]
 
+       # The special default_init constructor
+       var default_init: nullable MMethodDef = null is writable
+
        # All property introductions and redefinitions (not inheritance) in `self` by its associated property.
        var mpropdefs_by_property = new HashMap[MProperty, MPropDef]
 
+       # Return the direct parent mtype of `self`
+       # Exemple
+       # ~~~nitish
+       # module 1
+       #
+       #       class A
+       #       class B
+       #               super A
+       #
+       # module 2
+       #
+       #       redef class A
+       #       class C
+       #               super B
+       #
+       # mclassdef_C.get_direct_supermtype == [B]
+       # ~~~~
+       fun get_direct_supermtype: Collection[MClassType]
+       do
+               # Get the potentiel direct parents
+               var parents = in_hierarchy.direct_greaters
+               # Stock the potentiel direct parents
+               var res = supertypes
+               for parent in parents do
+                       # remove all super parents of the potentiel direct parents
+                       res.remove_all(parent.supertypes)
+                       # if the length of the potentiel direct parent equal 1 break
+                       if res.length == 1 then break
+               end
+               return res
+       end
+
        redef fun mdoc_or_fallback do return mdoc or else mclass.mdoc_or_fallback
 end
 
@@ -2622,19 +2657,21 @@ class MMethodDef
        # The signature attached to the property definition
        var msignature: nullable MSignature = null is writable
 
-       # The signature attached to the `new` call on a root-init
-       # This is a concatenation of the signatures of the initializers
-       #
-       # REQUIRE `mproperty.is_root_init == (new_msignature != null)`
-       var new_msignature: nullable MSignature = null is writable
-
        # List of initialisers to call in root-inits
        #
        # They could be setters or attributes
-       #
-       # REQUIRE `mproperty.is_root_init == (new_msignature != null)`
        var initializers = new Array[MProperty]
 
+       # Does the method take the responsibility to call `init`?
+       #
+       # If the method is used as an initializer, then
+       # using this information prevents to call `init` twice.
+       var is_calling_init = false is writable
+
+       # Does the method is a old_style_init?
+       #
+       var is_old_style_init = false is writable
+
        # Is the method definition abstract?
        var is_abstract: Bool = false is writable
 
index 35e210e..beb9068 100644 (file)
@@ -66,10 +66,9 @@ redef class ModelBuilder
                        toolcontext.run_phases_on_npropdef(res)
                        return res
                end
-               if mpropdef isa MMethodDef and mpropdef.mproperty.is_root_init then
-                       res = mclassdef2nclassdef.get_or_null(mpropdef.mclassdef)
-                       if res != null then return res
-               end
+               # Fall back to the class node if any.
+               res = mclassdef2nclassdef.get_or_null(mpropdef.mclassdef)
+               if res != null then return res
                return null
        end
 
@@ -150,7 +149,11 @@ redef class ModelBuilder
                var mclassdef = nclassdef.mclassdef.as(not null)
 
                # Are we a refinement
-               if not mclassdef.is_intro then return
+               if not mclassdef.is_intro then
+                       # Set the default_init of the mclassdef with the intro default_init
+                       mclassdef.default_init = mclassdef.mclass.intro.default_init
+                       return
+               end
 
                # Look for the init in Object, or create it
                if mclassdef.mclass.name == "Object" and the_root_init_mmethod == null then
@@ -161,11 +164,9 @@ redef class ModelBuilder
                        var mparameters = new Array[MParameter]
                        var msignature = new MSignature(mparameters, null)
                        mpropdef.msignature = msignature
-                       mpropdef.new_msignature = msignature
                        mprop.is_init = true
                        self.toolcontext.info("{mclassdef} gets a free empty constructor {mpropdef}{msignature}", 3)
                        the_root_init_mmethod = mprop
-                       return
                end
 
                # Is there already a constructor defined?
@@ -176,13 +177,15 @@ redef class ModelBuilder
                        if mpropdef.mproperty.is_root_init then
                                assert defined_init == null
                                defined_init = mpropdef
-                       else if mpropdef.mproperty.name == "init" then
-                               # An explicit old-style init named "init", so return
+                       else if mpropdef.name == "defaultinit" then
                                return
                        end
                end
 
-               if not nclassdef isa AStdClassdef then return
+               if mclassdef.default_init != null then return
+
+               # If the class is not AStdClassdef or it's an enum just return. No defaultinit is need.
+               if not nclassdef isa AStdClassdef or nclassdef.n_classkind isa AEnumClasskind then return
 
                # Collect undefined attributes
                var mparameters = new Array[MParameter]
@@ -194,7 +197,6 @@ redef class ModelBuilder
                                if mpropdef == null then return # Skip broken method
                                var sig = mpropdef.msignature
                                if sig == null then continue # Skip broken method
-
                                mparameters.add_all sig.mparameters
                                initializers.add(mpropdef.mproperty)
                                mpropdef.mproperty.is_autoinit = true
@@ -238,10 +240,13 @@ redef class ModelBuilder
                if the_root_init_mmethod == null then return
 
                # Look for most-specific new-stype init definitions
-               var spropdefs = the_root_init_mmethod.lookup_super_definitions(mclassdef.mmodule, mclassdef.bound_mtype)
-               if spropdefs.is_empty then
-                       toolcontext.error(nclassdef.location, "Error: `{mclassdef}` does not specialize `{the_root_init_mmethod.intro_mclassdef}`. Possible duplication of the root class `Object`?")
-                       return
+               var spropdefs = new ArraySet[MMethodDef]
+
+               for x in mclassdef.get_direct_supermtype do
+                       var y = x.mclass.intro.default_init
+                       if y == null then continue
+                       if y.is_broken or y.msignature == null then return
+                       spropdefs.add y
                end
 
                # Look at the autoinit class-annotation
@@ -295,13 +300,29 @@ redef class ModelBuilder
                                        abort
                                end
                        end
-               else
+               else if spropdefs.not_empty then
+                       # Search for inherited manual defaultinit
+                       var manual = null
+                       for s in spropdefs do
+                               if mpropdef2npropdef.has_key(s) then
+                                       self.toolcontext.info("{mclassdef} inherits a manual defaultinit {s}", 3)
+                                       manual = s
+                               end
+                       end
                        # Search the longest-one and checks for conflict
                        var longest = spropdefs.first
                        if spropdefs.length > 1 then
                                # part 1. find the longest list
                                for spd in spropdefs do
                                        if spd.initializers.length > longest.initializers.length then longest = spd
+
+                                       if spd != manual and manual != null then
+                                               self.toolcontext.info("{mclassdef} conflict between manual defaultinit {manual} and automatic defaultinit {spd}.", 3)
+                                       end
+                               end
+                               # conflict with manual autoinit?
+                               if longest != manual and manual != null then
+                                       self.error(nclassdef, "Error: conflict between manual defaultinit {manual} and automatic defaultinit {longest}.")
                                end
                                # part 2. compare
                                # Check for conflict in the order of initializers
@@ -334,41 +355,26 @@ redef class ModelBuilder
                                mparameters.clear
                                initializers.clear
                        else
-                               # Can we just inherit?
-                               if spropdefs.length == 1 and mparameters.is_empty and defined_init == null then
-                                       self.toolcontext.info("{mclassdef} inherits the basic constructor {longest}", 3)
-                                       mclassdef.mclass.root_init = longest
-                                       return
-                               end
-
                                # Combine the inherited list to what is collected
                                if longest.initializers.length > 0 then
-                                       mparameters.prepend longest.new_msignature.mparameters
+                                       mparameters.prepend longest.msignature.mparameters
                                        initializers.prepend longest.initializers
                                end
                        end
                end
 
-               # If we already have a basic init definition, then setup its initializers
-               if defined_init != null then
-                       defined_init.initializers.add_all(initializers)
+               # Create a specific new autoinit constructor
+               do
+                       var mprop = new MMethod(mclassdef, "defaultinit", nclassdef.location, public_visibility)
+                       mprop.is_init = true
+                       var mpropdef = new MMethodDef(mclassdef, mprop, nclassdef.location)
+                       mpropdef.initializers.add_all(initializers)
                        var msignature = new MSignature(mparameters, null)
-                       defined_init.new_msignature = msignature
-                       self.toolcontext.info("{mclassdef} extends its basic constructor signature to {defined_init}{msignature}", 3)
-                       mclassdef.mclass.root_init = defined_init
-                       return
+                       mpropdef.msignature = msignature
+                       mclassdef.default_init = mpropdef
+                       self.toolcontext.info("{mclassdef} gets a free auto constructor `{mpropdef}{msignature}`. {spropdefs}", 3)
+                       mclassdef.mclass.the_root_init_mmethod = the_root_init_mmethod
                end
-
-               # Else create the local implicit basic init definition
-               var mprop = the_root_init_mmethod
-               var mpropdef = new MMethodDef(mclassdef, mprop, nclassdef.location)
-               mpropdef.has_supercall = true
-               mpropdef.initializers.add_all(initializers)
-               var msignature = new MSignature(mparameters, null)
-               mpropdef.new_msignature = msignature
-               mpropdef.msignature = new MSignature(new Array[MParameter], null) # always an empty real signature
-               self.toolcontext.info("{mclassdef} gets a free constructor for attributes {mpropdef}{msignature}", 3)
-               mclassdef.mclass.root_init = mpropdef
        end
 
        # Check the visibility of `mtype` as an element of the signature of `mpropdef`.
@@ -504,11 +510,9 @@ end
 
 redef class MClass
        # The base init of the class.
-       # Used to get the common new_msignature and initializers
        #
-       # TODO: Where to put this information is not clear because unlike other
-       # informations, the initialisers are stable in a same class.
-       var root_init: nullable MMethodDef = null
+       # TODO: merge with `root_init` and `ModelBuilder::the_root_init_mmethod` if possible
+       var the_root_init_mmethod: nullable MMethod = null
 end
 
 redef class MClassDef
@@ -785,10 +789,16 @@ redef class AMethPropdef
                var name: String
                var amethodid = self.n_methid
                var name_node: ANode
+               var is_old_style_init = false
                if amethodid == null then
                        if n_kwinit != null then
                                name = "init"
                                name_node = n_kwinit
+                               var old_style_annot = get_single_annotation("old_style_init", modelbuilder)
+                               if  old_style_annot != null or self.n_signature.n_params.not_empty then
+                                       name = "defaultinit"
+                                       if old_style_annot != null then is_old_style_init = true
+                               end
                        else if n_kwnew != null then
                                name = "new"
                                name_node = n_kwnew
@@ -822,7 +832,7 @@ redef class AMethPropdef
 
                var look_like_a_root_init = look_like_a_root_init(modelbuilder, mclassdef)
                var mprop: nullable MMethod = null
-               if not is_init or n_kwredef != null then mprop = modelbuilder.try_get_mproperty_by_name(name_node, mclassdef, name).as(nullable MMethod)
+               if not is_init or n_kwredef != null or look_like_a_root_init then mprop = modelbuilder.try_get_mproperty_by_name(name_node, mclassdef, name).as(nullable MMethod)
                if mprop == null and look_like_a_root_init then
                        mprop = modelbuilder.the_root_init_mmethod
                        var nb = n_block
@@ -867,6 +877,15 @@ redef class AMethPropdef
                mclassdef.mprop2npropdef[mprop] = self
 
                var mpropdef = new MMethodDef(mclassdef, mprop, self.location)
+               if mpropdef.name == "defaultinit" and mclassdef.is_intro then
+                       assert mclassdef.default_init == null
+                       mpropdef.is_old_style_init = is_old_style_init
+                       mclassdef.default_init = mpropdef
+                       # Set the initializers with the mproperty.
+                       # This point is need when a super class define this own default_init and inherited class use the default_init generated automaticlely.
+                       mpropdef.initializers.add mprop
+                       mpropdef.is_calling_init = true
+               end
 
                set_doc(mpropdef, modelbuilder)
 
@@ -888,16 +907,6 @@ redef class AMethPropdef
                var mmodule = mclassdef.mmodule
                var nsig = self.n_signature
 
-               if mproperty.is_root_init and not mclassdef.is_intro then
-                       var root_init = mclassdef.mclass.root_init
-                       if root_init != null then
-                               # Inherit the initializers by refinement
-                               mpropdef.new_msignature = root_init.new_msignature
-                               assert mpropdef.initializers.is_empty
-                               mpropdef.initializers.add_all root_init.initializers
-                       end
-               end
-
                var accept_special_last_parameter = self.n_methid == null or self.n_methid.accept_special_last_parameter
                var return_is_mandatory = self.n_methid != null and self.n_methid.return_is_mandatory
 
index 3af570a..15b1de6 100644 (file)
@@ -724,7 +724,7 @@ class NeoModel
                        var rank = 0
                        for mparameter in mtype.mparameters do
                                names.add mparameter.name
-                               var pnode = mparameter_node(mparameter)
+                               var pnode = to_node(mparameter)
                                pnode["rank"] = rank
                                node.out_edges.add(new NeoEdge(node, "PARAMETER", pnode))
                                rank += 1
index 6d05196..c9725d0 100644 (file)
@@ -219,7 +219,7 @@ class MExplicitCall
 
                        var cname
                        if mproperty.is_init then
-                               if mproperty.name == "init" or mproperty.name == "new" then
+                               if mproperty.name == "init" or mproperty.name == "new" or mproperty.name == "defaultinit" then
                                        cname = "new_{recv_mtype.mangled_cname}"
                                else
                                        cname = "new_{recv_mtype.mangled_cname}_{mproperty.short_cname}"
@@ -350,7 +350,7 @@ redef class AInitPropExternCall
                        mmodule, mtype, meth_name )
 
                if meth == null then
-                       meth_name = "init"
+                       meth_name = "defaultinit"
                        meth = toolcontext.modelbuilder.try_get_mproperty_by_name2( self,
                                mmodule, mtype, meth_name )
                end
index 910877b..b1b5917 100644 (file)
@@ -28,7 +28,7 @@ redef class MMethod
        do
                var cname
                if self.is_init then
-                       if self.name == "init" or self.name == "new" then
+                       if self.name == "init" or self.name == "new" or self.name == "defaultinit" then
                                cname = "new_{recv_mtype.mangled_cname}"
                        else
                                cname = "new_{recv_mtype.mangled_cname}_{self.short_cname}"
index 970d8df..404ebce 100644 (file)
@@ -245,7 +245,6 @@ class RapidTypeAnalysis
                                v.add_monomorphic_send(vararg, self.modelbuilder.force_get_primitive_method(node, "with_native", vararg.mclass, self.mainmodule))
                        end
 
-                       # TODO? new_msignature
                        var sig = msignature
                        var osig = mmeth.intro.msignature.as(not null)
                        for i in [0..sig.arity[ do
@@ -261,9 +260,15 @@ class RapidTypeAnalysis
 
                        if npropdef isa AClassdef then
                                if mmethoddef.mproperty.is_root_init then
+                                       # Final init call
                                        if not mmethoddef.is_intro then
                                                self.add_super_send(v.receiver, mmethoddef)
                                        end
+                               else if mmethoddef.mclassdef.default_init == mmethoddef then
+                                       # default_init call
+                                       for i in mmethoddef.initializers do
+                                               if i isa MMethod then self.add_send(v.receiver, i)
+                                       end
                                else
                                        npropdef.debug "cannot RTA {mmethoddef}"
                                        abort
index 55263bd..0be7107 100644 (file)
@@ -104,14 +104,9 @@ redef class AMethPropdef
                var auto_super_inits = new Array[CallSite]
 
                # The look for new-style super constructors (called from a old style constructor)
-               var the_root_init_mmethod = modelbuilder.the_root_init_mmethod
-               if the_root_init_mmethod != null and auto_super_inits.is_empty then
-                       var candidatedefs = the_root_init_mmethod.lookup_definitions(mmodule, anchor)
-                       if candidatedefs.is_empty then
-                               # skip broken
-                               is_broken = true
-                               return
-                       end
+               var candidatedefs = get_super_candidatedefs(modelbuilder)
+
+               if not candidatedefs.is_empty and auto_super_inits.is_empty then
 
                        var candidatedef = candidatedefs.first
                        if candidatedefs.length > 1 then
@@ -121,18 +116,34 @@ redef class AMethPropdef
                                return
                        end
 
-                       var msignature = candidatedef.new_msignature or else candidatedef.msignature
+                       var msignature = candidatedef.msignature
                        msignature = msignature.resolve_for(recvtype, anchor, mmodule, true)
 
-                       if msignature.arity > 0 then
+                       if msignature.arity > mpropdef.msignature.arity then
                                modelbuilder.error(self, "Error: cannot do an implicit constructor call to `{candidatedef}{msignature}`. Expected at least `{msignature.arity}` arguments.")
                                is_broken = true
                                return
                        end
 
-                       var callsite = new CallSite(hot_location, recvtype, mmodule, anchor, true, the_root_init_mmethod, candidatedef, msignature, false)
+                       if candidatedef.mproperty != mpropdef.mproperty then
+                               var i = 0
+                               for candidat_mparameter in msignature.mparameters do
+                                       var actual_mparameter = mpropdef.msignature.mparameters[i]
+                                       if not candidat_mparameter.mtype.is_subtype(mmodule, anchor, actual_mparameter.mtype) then
+                                               modelbuilder.error(self, "Type Error: expected argument #{i} of type `{candidat_mparameter.mtype}`, got implicit argument `{candidat_mparameter.name}` of type `{actual_mparameter.mtype}`. Signature is {msignature}")
+                                               return
+                                       end
+                                       i += 1
+                               end
+                       end
+
+                       var callsite = new CallSite(hot_location, recvtype, mmodule, anchor, true, candidatedef.mproperty, candidatedef, msignature, false)
                        auto_super_inits.add(callsite)
-                       modelbuilder.toolcontext.info("Auto-super init for {mpropdef} to {the_root_init_mmethod.full_name}", 4)
+                       modelbuilder.toolcontext.info("Auto-super init for {mpropdef} to {candidatedef.full_name}", 4)
+               else if candidatedefs.is_empty then
+                       # skip broken
+                       is_broken = true
+                       return
                end
                if auto_super_inits.is_empty then
                        modelbuilder.error(self, "Error: no constructors to call implicitly in `{mpropdef}`. Call one explicitly.")
@@ -142,6 +153,34 @@ redef class AMethPropdef
                self.auto_super_inits = auto_super_inits
        end
 
+       # This method returns the list of possible candidates for the current definition.
+       #
+       # Warning this method supports super call from old_style_init to default_inits without signature verification!!!
+       private fun get_super_candidatedefs(modelbuilder: ModelBuilder): Array[MMethodDef]
+       do
+               var candidatedefs = new Array[MMethodDef]
+
+               var mclassdef = self.parent.as(AClassdef).mclassdef
+               if mclassdef == null or mclassdef.is_broken then return candidatedefs # skip error
+               var mpropdef = self.mpropdef
+               if mpropdef == null or mpropdef.is_broken then return candidatedefs # skip error
+               var mmodule = mpropdef.mclassdef.mmodule
+               var anchor = mclassdef.bound_mtype
+               var mproperty = mpropdef.mproperty
+
+               # The look for new-style super constructors (called from a old style constructor)
+               var the_root_init_mmethod = modelbuilder.the_root_init_mmethod
+
+               if mpropdef.is_old_style_init then
+                       var superprop: nullable MMethodDef = null
+                       for mclass in mclassdef.mclass.in_hierarchy(mmodule).direct_greaters do
+                               candidatedefs.add(mclass.intro.default_init.as(not null))
+                       end
+               else
+                       candidatedefs = the_root_init_mmethod.lookup_definitions(mmodule, anchor)
+               end
+               return candidatedefs
+       end
 end
 
 redef class ANode
index b9acd5e..5d6b5da 100644 (file)
@@ -315,13 +315,22 @@ private class TypeVisitor
 
                var mproperty = self.try_get_mproperty_by_name2(node, unsafe_type, name)
                if name == "new" and mproperty == null then
-                       name = "init"
+                       name = "defaultinit"
                        mproperty = self.try_get_mproperty_by_name2(node, unsafe_type, name)
+                       if mproperty == null then
+                               name = "init"
+                               mproperty = self.try_get_mproperty_by_name2(node, unsafe_type, name)
+                       end
                end
 
                if mproperty == null then
                        if recv_is_self then
-                               self.modelbuilder.error(node, "Error: method or variable `{name}` unknown in `{recvtype}`.")
+                               # FIXME This test was added to display a more explicit error when a potential duplication of root object class.
+                               if name == "init" then
+                                       self.modelbuilder.error(node, "Possible duplication of the root class `Object`")
+                               else
+                                       self.modelbuilder.error(node, "Error: method or variable `{name}` unknown in `{recvtype}`.")
+                               end
                        else if recvtype.need_anchor then
                                self.modelbuilder.error(node, "Error: method `{name}` does not exists in `{recvtype}: {unsafe_type}`.")
                        else
@@ -395,7 +404,7 @@ private class TypeVisitor
        # The `build_callsite_by_propdef` builds the callsite directly with the `mprodef` passed in argument.
        fun build_callsite_by_propdef(node: ANode, recvtype: MType, mpropdef: MMethodDef, recv_is_self: Bool): nullable CallSite
        do
-               var msignature = mpropdef.new_msignature or else mpropdef.msignature
+               var msignature = mpropdef.msignature
                if msignature == null then return null # skip error
                msignature = resolve_for(msignature, recvtype, recv_is_self).as(MSignature)
 
@@ -1774,7 +1783,7 @@ redef class ARangeExpr
                # get the constructor
                var callsite
                if self isa ACrangeExpr then
-                       callsite = v.build_callsite_by_name(self, mtype, "init", false)
+                       callsite = v.build_callsite_by_name(self, mtype, "defaultinit", false)
                else if self isa AOrangeExpr then
                        callsite = v.build_callsite_by_name(self, mtype, "without_last", false)
                else
@@ -2156,7 +2165,7 @@ redef class ABraReassignExpr
 end
 
 redef class AInitExpr
-       redef fun property_name do return "init"
+       redef fun property_name do if n_args.n_exprs.is_empty then return "init" else return "defaultinit"
        redef fun property_node do return n_kwinit
        redef fun compute_raw_arguments do return n_args.to_a
 end
@@ -2325,7 +2334,7 @@ redef class ASuperExpr
                        return
                end
 
-               var msignature = superprop.new_msignature or else superprop.msignature.as(not null)
+               var msignature = superprop.msignature.as(not null)
                msignature = v.resolve_for(msignature, recvtype, true).as(MSignature)
 
                var callsite = new CallSite(hot_location, recvtype, v.mmodule, v.anchor, true, superprop.mproperty, superprop, msignature, false)
index 514d3d1..3fe9672 100644 (file)
@@ -24,28 +24,7 @@ redef class VirtualMachine
        # Add optimization of the method dispatch
        redef fun callsite(callsite: nullable CallSite, arguments: Array[Instance]): nullable Instance
        do
-               var initializers = callsite.mpropdef.initializers
-               if initializers.is_empty then return send_optimize(callsite.as(not null), arguments)
-
-               var recv = arguments.first
-               var i = 1
-               for p in initializers do
-                       if p isa MMethod then
-                               var args = [recv]
-                               for x in p.intro.msignature.mparameters do
-                                       args.add arguments[i]
-                                       i += 1
-                               end
-                               self.send(p, args)
-                       else if p isa MAttribute then
-                               assert recv isa MutableInstance
-                               write_attribute(p, recv, arguments[i])
-                               i += 1
-                       else abort
-               end
-               assert i == arguments.length
-
-               return send_optimize(callsite.as(not null), [recv])
+               return send_optimize(callsite.as(not null), arguments)
        end
 
        # Try to have the most efficient implementation of the method dispatch
index ae29324..112f86b 100644 (file)
@@ -26,7 +26,6 @@ end
 
 class Integer
        var val: Int
-       init(val: Int) do _val = val
        fun output do _val.output
 end
 
index be64735..0f2988b 100644 (file)
@@ -40,7 +40,10 @@ end
 
 class C1
        super A
-       init(j: Int) do
+       init(j: Int)
+       is
+               old_style_init
+       do
                super
                j.output
        end
@@ -48,7 +51,10 @@ end
 
 class D1
        super A
-       init(j: Int) do
+       init(j: Int)
+       is
+               old_style_init
+       do
                super
                j.output
        end
@@ -56,7 +62,10 @@ end
 
 class E1
        super A
-       init(j: Bool) do
+       init(j: Bool)
+       is
+               old_style_init
+       do
                super(8)#alt4#super
                j.output
        end
@@ -64,7 +73,10 @@ end
 
 class C2
        super A
-       init(j: Int) do
+       init(j: Int)
+       is
+               old_style_init
+       do
                super(j)
                j.output
        end
@@ -72,7 +84,10 @@ end
 
 class D2
        super A
-       init(j: Int) do
+       init(j: Int)
+       is
+               old_style_init
+       do
                super(j)
                j.output
        end
@@ -80,7 +95,10 @@ end
 
 class E2
        super A
-       init(j: Bool) do
+       init(j: Bool)
+       is
+               old_style_init
+       do
                super(11)#alt5#super(j)
                j.output
        end
@@ -88,7 +106,10 @@ end
 
 class C3
        super A
-       init(j: Int) do
+       init(j: Int)
+       is
+               old_style_init
+       do
                super(j)#alt6#
                j.output
        end
@@ -96,7 +117,10 @@ end
 
 class D3
        super A
-       init(j: Int) do
+       init(j: Int)
+       is
+               old_style_init
+       do
                super(j)#alt6#
                j.output
        end
@@ -104,7 +128,10 @@ end
 
 class E3
        super A
-       init(j: Bool) do
+       init(j: Bool)
+       is
+               old_style_init
+       do
                super(14)#alt6#
                j.output
        end
@@ -112,7 +139,10 @@ end
 
 class F1
        super A
-       init(j: Int, k: Bool) do
+       init(j: Int, k: Bool)
+       is
+               old_style_init
+       do
                super
                j.output
        end
@@ -120,7 +150,10 @@ end
 
 class F2
        super A
-       init(j: Int, k: Bool) do
+       init(j: Int, k: Bool)
+       is
+               old_style_init
+       do
                super(j)#alt6#
                j.output
        end
index 8bb2bc8..6515ef7 100644 (file)
@@ -33,11 +33,7 @@ end
 
 class B
        var val: Int
-       init(v: Int)
-       do
-               7.output
-               self.val = v
-       end
+       init do 7.output
        fun run do val.output
 end
 
index adff5f2..710fe07 100644 (file)
@@ -16,18 +16,18 @@ import kernel
 
 class A
        #1alt1#init do abort
-       #1alt2#init(a: Int) do abort
+       #1alt2#init(a: Int) is old_style_init do abort
        #1alt3#new do abort
        #1alt4#new(c: Int) do abort
-       #1alt5#init foo(a: Int) do abort
+       #1alt5#init foo(a: Int) is old_style_init do abort
        #1alt6#new foo(c: Int) do abort
        #1alt7#fun foo do end
 
        #alt1#init do abort
-       #alt2#init(b: Float) do abort
+       #alt2#init(b: Float)is old_style_init do abort
        #alt3#new do abort
        #alt4#new(d: Float) do abort
-       #alt5#init foo(a: Float) do abort
+       #alt5#init foo(a: Float)is old_style_init do abort
        #alt6#new foo(c: Float) do abort
        #alt7#fun foo do end
 end
index d6c4929..df31aac 100644 (file)
@@ -1,9 +1,9 @@
-alt/base_arg_default_autoinit_alt1.nit:59,5--7: Error: expected at least 1 argument(s) for `init(mandatory: Int, optional: nullable Int)`; got 0. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:68,5--7: Error: expected 2 argument(s) for `init(mandatory: Int, optional: nullable Int)`; got 3. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:71,5--7: Error: expected 4 argument(s) for `init(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 1. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:74,5--7: Error: expected 4 argument(s) for `init(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 2. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:77,5--7: Error: expected 4 argument(s) for `init(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 3. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:83,5--7: Error: expected 4 argument(s) for `init(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 5. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:86,5--7: Error: expected 3 argument(s) for `init(optional_b: nullable Int, mandatory_b, mandatory: Int)`; got 1. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:89,5--7: Error: expected 3 argument(s) for `init(optional_b: nullable Int, mandatory_b, mandatory: Int)`; got 2. See introduction at `core::Object::init`.
-alt/base_arg_default_autoinit_alt1.nit:95,5--7: Error: expected 3 argument(s) for `init(optional_b: nullable Int, mandatory_b, mandatory: Int)`; got 4. See introduction at `core::Object::init`.
+alt/base_arg_default_autoinit_alt1.nit:59,5--7: Error: expected at least 1 argument(s) for `defaultinit(mandatory: Int, optional: nullable Int)`; got 0. See introduction at `base_arg_default_autoinit_alt1::A::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:68,5--7: Error: expected 2 argument(s) for `defaultinit(mandatory: Int, optional: nullable Int)`; got 3. See introduction at `base_arg_default_autoinit_alt1::A::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:71,5--7: Error: expected 4 argument(s) for `defaultinit(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 1. See introduction at `base_arg_default_autoinit_alt1::B::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:74,5--7: Error: expected 4 argument(s) for `defaultinit(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 2. See introduction at `base_arg_default_autoinit_alt1::B::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:77,5--7: Error: expected 4 argument(s) for `defaultinit(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 3. See introduction at `base_arg_default_autoinit_alt1::B::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:83,5--7: Error: expected 4 argument(s) for `defaultinit(mandatory: Int, optional, optional_b: nullable Int, mandatory_b: Int)`; got 5. See introduction at `base_arg_default_autoinit_alt1::B::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:86,5--7: Error: expected 3 argument(s) for `defaultinit(optional_b: nullable Int, mandatory_b, mandatory: Int)`; got 1. See introduction at `base_arg_default_autoinit_alt1::C::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:89,5--7: Error: expected 3 argument(s) for `defaultinit(optional_b: nullable Int, mandatory_b, mandatory: Int)`; got 2. See introduction at `base_arg_default_autoinit_alt1::C::defaultinit`.
+alt/base_arg_default_autoinit_alt1.nit:95,5--7: Error: expected 3 argument(s) for `defaultinit(optional_b: nullable Int, mandatory_b, mandatory: Int)`; got 4. See introduction at `base_arg_default_autoinit_alt1::C::defaultinit`.
index 9caee3f..55e832d 100644 (file)
@@ -1 +1 @@
-alt/base_attr_annot_1alt1.nit:33,9--11: Error: expected 0 argument(s) for `init`; got 1. See introduction at `core::Object::init`.
+alt/base_attr_annot_1alt1.nit:33,9--11: Error: expected 0 argument(s) for `defaultinit`; got 1. See introduction at `base_attr_annot_1alt1::B::defaultinit`.
index ea3b78f..7b33360 100644 (file)
@@ -1 +1 @@
-alt/base_attr_annot_alt1.nit:33,9--11: Error: expected 1 argument(s) for `init(a: Object)`; got 0. See introduction at `core::Object::init`.
+alt/base_attr_annot_alt1.nit:33,9--11: Error: expected 1 argument(s) for `defaultinit(a: Object)`; got 0. See introduction at `base_attr_annot_alt1::B::defaultinit`.
index c7cab54..60c2eaf 100644 (file)
@@ -1 +1 @@
-Runtime error: Uninitialized attribute _a1 (alt/base_attr_nullable_alt1.nit:38)
+Runtime error: Uninitialized attribute _a1 (alt/base_attr_nullable_alt1.nit:37)
index d238261..46a38b1 100644 (file)
@@ -1,2 +1,2 @@
-Runtime error: Uninitialized attribute _a2 (alt/base_attr_nullable_alt2.nit:39)
+Runtime error: Uninitialized attribute _a2 (alt/base_attr_nullable_alt2.nit:38)
 1
index b6f38c8..a725723 100644 (file)
@@ -1 +1 @@
-Runtime error: Uninitialized attribute _a1 (alt/base_attr_nullable_alt3.nit:64)
+Runtime error: Uninitialized attribute _a1 (alt/base_attr_nullable_alt3.nit:63)
index 1a98ce8..7ab0b21 100644 (file)
@@ -1,2 +1,2 @@
-Runtime error: Uninitialized attribute _a2 (alt/base_attr_nullable_alt4.nit:45)
+Runtime error: Uninitialized attribute _a2 (alt/base_attr_nullable_alt4.nit:44)
 10
index 891e424..eadaa67 100644 (file)
@@ -1,3 +1,3 @@
-Runtime error: Uninitialized attribute _a3 (alt/base_attr_nullable_alt5.nit:66)
+Runtime error: Uninitialized attribute _a3 (alt/base_attr_nullable_alt5.nit:65)
 10
 20
index 84d579c..971fe14 100644 (file)
@@ -1,2 +1,2 @@
-alt/base_init_basic_alt3.nit:47,7: Error: cannot generate automatic init for class F. Conflict in the order in inherited initializers base_init_basic_alt3$E$init(c=, e=) and base_init_basic_alt3$D$init(c=, b=). Use `autoinit` to order initializers. eg `autoinit c=, b=, e=`
-alt/base_init_basic_alt3.nit:54,7: Error: cannot generate automatic init for class G. Conflict in the order in inherited initializers base_init_basic_alt3$E$init(c=, e=) and base_init_basic_alt3$D$init(c=, b=). Use `autoinit` to order initializers. eg `autoinit c=, b=, e=, g=`
+alt/base_init_basic_alt3.nit:47,7: Error: cannot generate automatic init for class F. Conflict in the order in inherited initializers base_init_basic_alt3$E$defaultinit(c=, e=) and base_init_basic_alt3$D$defaultinit(c=, b=). Use `autoinit` to order initializers. eg `autoinit c=, b=, e=`
+alt/base_init_basic_alt3.nit:54,7: Error: cannot generate automatic init for class G. Conflict in the order in inherited initializers base_init_basic_alt3$E$defaultinit(c=, e=) and base_init_basic_alt3$D$defaultinit(c=, b=). Use `autoinit` to order initializers. eg `autoinit c=, b=, e=, g=`
index 82ddfc6..565d4e7 100644 (file)
@@ -1 +1 @@
-alt/base_init_basic_alt5.nit:79,9--11: Error: expected 2 argument(s) for `init(c, b: Int)`; got 1. See introduction at `core::Object::init`.
+alt/base_init_basic_alt5.nit:79,9--11: Error: expected 2 argument(s) for `defaultinit(c, b: Int)`; got 1. See introduction at `base_init_basic_alt5::D::defaultinit`.
index b079cab..d9b9b04 100644 (file)
@@ -1 +1 @@
-alt/base_init_combine_alt1.nit:59,9--11: Error: expected 2 argument(s) for `init(i, z: Int)`; got 1. See introduction at `core::Object::init`.
+alt/base_init_combine_alt1.nit:59,9--11: Error: expected 2 argument(s) for `defaultinit(i, z: Int)`; got 1. See introduction at `base_init_combine_alt1::F::defaultinit`.
index 7282bf5..5d7df60 100644 (file)
@@ -1 +1 @@
-alt/base_init_noinit_alt4.nit:30,3--5: Error: expected 0 argument(s) for `init`; got 1. See introduction at `core::Object::init`.
+alt/base_init_noinit_alt4.nit:30,3--5: Error: expected 0 argument(s) for `defaultinit`; got 1. See introduction at `base_init_noinit_alt4::A::defaultinit`.
index d75b874..9245c89 100644 (file)
@@ -1 +1 @@
-alt/base_init_super_call2_alt3.nit:38,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt3$A$init(i: Int)`. Expected at least `1` arguments.
+alt/base_init_super_call2_alt3.nit:38,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt3$A$defaultinit(i: Int)`. Expected at least `1` arguments.
index 823de40..eeb33c5 100644 (file)
@@ -1 +1 @@
-alt/base_init_super_call2_alt4.nit:60,3--7: Type Error: expected argument #0 of type `Int`, got implicit argument `j` of type `Bool`. Signature is (i: Int)
+alt/base_init_super_call2_alt4.nit:69,3--7: Type Error: expected argument #0 of type `Int`, got implicit argument `j` of type `Bool`. Signature is (i: Int)
index b6e45c9..7fd2621 100644 (file)
@@ -1 +1 @@
-alt/base_init_super_call2_alt5.nit:84,9: Type Error: expected `Int`, got `Bool`.
+alt/base_init_super_call2_alt5.nit:102,9: Type Error: expected `Int`, got `Bool`.
index a920abb..0d1abc9 100644 (file)
@@ -1,4 +1 @@
-alt/base_init_super_call2_alt6.nit:91,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt6$A$init(i: Int)`. Expected at least `1` arguments.
-alt/base_init_super_call2_alt6.nit:99,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt6$A$init(i: Int)`. Expected at least `1` arguments.
-alt/base_init_super_call2_alt6.nit:107,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt6$A$init(i: Int)`. Expected at least `1` arguments.
-alt/base_init_super_call2_alt6.nit:123,2--5: Error: cannot do an implicit constructor call to `base_init_super_call2_alt6$A$init(i: Int)`. Expected at least `1` arguments.
+alt/base_init_super_call2_alt6.nit:131,2--5: Type Error: expected argument #0 of type `Int`, got implicit argument `i` of type `Bool`. Signature is (i: Int)
index 138108b..4adff4b 100644 (file)
@@ -1,23 +1 @@
-1
-2
-3
-4
-6
-6
-7
-7
-8
-true
-9
-9
-10
-10
-11
-true
-12
-13
-14
-true
-15
-15
-16
+alt/base_init_super_call_alt3.nit:38,2--5: Error: cannot do an implicit constructor call to `base_init_super_call_alt3$A$defaultinit(i: Int)`. Expected at least `1` arguments.
index 880abb6..a0517ba 100644 (file)
@@ -1 +1,2 @@
+alt/base_new_alt8.nit:91,2--4: Error: ambiguous property name `defaultinit` for `Int`; conflict between core::Numeric::defaultinit and core::Discrete::defaultinit.
 alt/base_new_alt8.nit:91,2--8: Type Error: cannot instantiate enum `Int`.
index 8189994..b9c7f9d 100644 (file)
@@ -1,3 +1,3 @@
-alt/base_vararg_mult_alt1.nit:40,5--7: Error: expected at least 1 argument(s) for `init(ints: Int...)`; got 0. See introduction at `core::Object::init`.
-alt/base_vararg_mult_alt1.nit:47,5--7: Error: expected 2 argument(s) for `init(ints: Int..., objs: Object...)`; got 3. See introduction at `core::Object::init`.
+alt/base_vararg_mult_alt1.nit:40,5--7: Error: expected at least 1 argument(s) for `defaultinit(ints: Int...)`; got 0. See introduction at `base_vararg_mult_alt1::A::defaultinit`.
+alt/base_vararg_mult_alt1.nit:47,5--7: Error: expected 2 argument(s) for `defaultinit(ints: Int..., objs: Object...)`; got 3. See introduction at `base_vararg_mult_alt1::B::defaultinit`.
 alt/base_vararg_mult_alt1.nit:48,11--18: Type Error: expected `Int`, got `Array[Int]`. Is an ellipsis `...` missing on the argument?
index 0a541aa..5c09788 100644 (file)
@@ -1,13 +1,2 @@
-../lib/core/kernel.nit:32,1--225,3: Error: `kernel$Object` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:227,1--300,3: Error: `kernel$Sys` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:313,1--371,3: Error: `kernel$Comparable` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:373,1--410,3: Error: `kernel$Discrete` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:412,1--429,3: Error: `kernel$Cloneable` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:431,1--486,3: Error: `kernel$Numeric` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:492,1--515,3: Error: `kernel$Bool` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:517,1--599,3: Error: `kernel$Float` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:601,1--700,3: Error: `kernel$Byte` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:702,1--886,3: Error: `kernel$Int` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:888,1--1067,3: Error: `kernel$Char` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:1069,1--1086,3: Error: `kernel$Pointer` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
-../lib/core/kernel.nit:1088,1--1097,3: Error: `kernel$Task` does not specialize `module_0$Object`. Possible duplication of the root class `Object`?
+../lib/core/collection/hash_collection.nit:275,3--6: Possible duplication of the root class `Object`
+../lib/core/collection/hash_collection.nit:473,3--6: Possible duplication of the root class `Object`
index 85a7e8e..e69de29 100644 (file)
@@ -1 +0,0 @@
-alt/error_defs_init_1alt1_alt2.nit:27,2--5: Error: a property `init` is already defined in class `A` at line 18.
index d0f5aa7..e69de29 100644 (file)
@@ -1 +0,0 @@
-alt/error_defs_init_1alt2_alt1.nit:26,2--5: Error: a property `init` is already defined in class `A` at line 18.
index c9e3a71..b0df7ca 100644 (file)
@@ -1 +1 @@
-alt/error_defs_init_1alt2_alt2.nit:27,2--5: Error: a property `init` is already defined in class `A` at line 18.
+alt/error_defs_init_1alt2_alt2.nit:27,2--5: Error: a property `defaultinit` is already defined in class `A` at line 18.
index a466472..b4fea22 100644 (file)
@@ -1,4 +1,4 @@
-error_init_auto.nit:34,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 0. See introduction at `core::Object::init`.
-error_init_auto.nit:36,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 2. See introduction at `core::Object::init`.
-error_init_auto.nit:37,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 3. See introduction at `core::Object::init`.
+error_init_auto.nit:34,5--7: Error: expected 1 argument(s) for `defaultinit(x: Int)`; got 0. See introduction at `error_init_auto::A::defaultinit`.
+error_init_auto.nit:36,5--7: Error: expected 1 argument(s) for `defaultinit(x: Int)`; got 2. See introduction at `error_init_auto::A::defaultinit`.
+error_init_auto.nit:37,5--7: Error: expected 1 argument(s) for `defaultinit(x: Int)`; got 3. See introduction at `error_init_auto::A::defaultinit`.
 error_init_auto.nit:38,11--13: Error: method `foo` does not exists in `A`.
index 3356259..390923a 100644 (file)
@@ -1,4 +1,4 @@
-alt/error_init_auto_alt1.nit:35,5--7: Error: expected 0 argument(s) for `init`; got 1. See introduction at `core::Object::init`.
-alt/error_init_auto_alt1.nit:36,5--7: Error: expected 0 argument(s) for `init`; got 2. See introduction at `core::Object::init`.
-alt/error_init_auto_alt1.nit:37,5--7: Error: expected 0 argument(s) for `init`; got 3. See introduction at `core::Object::init`.
+alt/error_init_auto_alt1.nit:35,5--7: Error: expected 0 argument(s) for `defaultinit`; got 1. See introduction at `error_init_auto_alt1::A::defaultinit`.
+alt/error_init_auto_alt1.nit:36,5--7: Error: expected 0 argument(s) for `defaultinit`; got 2. See introduction at `error_init_auto_alt1::A::defaultinit`.
+alt/error_init_auto_alt1.nit:37,5--7: Error: expected 0 argument(s) for `defaultinit`; got 3. See introduction at `error_init_auto_alt1::A::defaultinit`.
 alt/error_init_auto_alt1.nit:38,11--13: Error: method `foo` does not exists in `A`.
index 16c9ed4..d43fffd 100644 (file)
@@ -1,4 +1,4 @@
-alt/error_init_auto_alt2.nit:34,5--7: Error: expected 2 argument(s) for `init(x, y: Int)`; got 0. See introduction at `core::Object::init`.
-alt/error_init_auto_alt2.nit:35,5--7: Error: expected 2 argument(s) for `init(x, y: Int)`; got 1. See introduction at `core::Object::init`.
-alt/error_init_auto_alt2.nit:37,5--7: Error: expected 2 argument(s) for `init(x, y: Int)`; got 3. See introduction at `core::Object::init`.
+alt/error_init_auto_alt2.nit:34,5--7: Error: expected 2 argument(s) for `defaultinit(x, y: Int)`; got 0. See introduction at `error_init_auto_alt2::A::defaultinit`.
+alt/error_init_auto_alt2.nit:35,5--7: Error: expected 2 argument(s) for `defaultinit(x, y: Int)`; got 1. See introduction at `error_init_auto_alt2::A::defaultinit`.
+alt/error_init_auto_alt2.nit:37,5--7: Error: expected 2 argument(s) for `defaultinit(x, y: Int)`; got 3. See introduction at `error_init_auto_alt2::A::defaultinit`.
 alt/error_init_auto_alt2.nit:38,11--13: Error: method `foo` does not exists in `A`.
index 61e44f6..8a30015 100644 (file)
@@ -1,4 +1,4 @@
-alt/error_init_auto_alt3.nit:34,5--7: Error: expected 1 argument(s) for `init(xx: Int)`; got 0. See introduction at `error_init_auto_alt3::A::init`.
-alt/error_init_auto_alt3.nit:36,5--7: Error: expected 1 argument(s) for `init(xx: Int)`; got 2. See introduction at `error_init_auto_alt3::A::init`.
-alt/error_init_auto_alt3.nit:37,5--7: Error: expected 1 argument(s) for `init(xx: Int)`; got 3. See introduction at `error_init_auto_alt3::A::init`.
+alt/error_init_auto_alt3.nit:34,5--7: Error: expected 1 argument(s) for `defaultinit(xx: Int)`; got 0. See introduction at `error_init_auto_alt3::A::defaultinit`.
+alt/error_init_auto_alt3.nit:36,5--7: Error: expected 1 argument(s) for `defaultinit(xx: Int)`; got 2. See introduction at `error_init_auto_alt3::A::defaultinit`.
+alt/error_init_auto_alt3.nit:37,5--7: Error: expected 1 argument(s) for `defaultinit(xx: Int)`; got 3. See introduction at `error_init_auto_alt3::A::defaultinit`.
 alt/error_init_auto_alt3.nit:38,11--13: Error: method `foo` does not exists in `A`.
index 1e2a53a..8d39276 100644 (file)
@@ -1,3 +1,3 @@
-alt/error_init_auto_alt4.nit:34,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 0. See introduction at `core::Object::init`.
-alt/error_init_auto_alt4.nit:36,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 2. See introduction at `core::Object::init`.
-alt/error_init_auto_alt4.nit:37,5--7: Error: expected 1 argument(s) for `init(x: Int)`; got 3. See introduction at `core::Object::init`.
+alt/error_init_auto_alt4.nit:34,5--7: Error: expected 1 argument(s) for `defaultinit(x: Int)`; got 0. See introduction at `error_init_auto_alt4::A::defaultinit`.
+alt/error_init_auto_alt4.nit:36,5--7: Error: expected 1 argument(s) for `defaultinit(x: Int)`; got 2. See introduction at `error_init_auto_alt4::A::defaultinit`.
+alt/error_init_auto_alt4.nit:37,5--7: Error: expected 1 argument(s) for `defaultinit(x: Int)`; got 3. See introduction at `error_init_auto_alt4::A::defaultinit`.
index 040f43c..6cca568 100644 (file)
@@ -84,7 +84,7 @@
 </ul>
 <h3>Quality</h3>
 <ul class="box">
-<li>28 warnings (55/kloc)</li>
+<li>26 warnings (51/kloc)</li>
 <li>73% documented</li>
 </ul>
 <h3>Tags</h3>
@@ -95,7 +95,7 @@ none<h3>Contributors</h3>
 <ul class="box">
 <li>10 modules</li>
 <li>26 classes</li>
-<li>79 methods</li>
+<li>101 methods</li>
 <li>509 lines of code</li>
 </ul>
 </div>
index a7326d6..7fd3669 100644 (file)
@@ -1,13 +1,13 @@
 Parsing code...
 Generating documentation pages...
 Documentation produced in `out/nitdoc_args1.write`
-Generated 22/22 pages
+Generated 27/27 pages
  PageHome: 1
  PageMPackage: 2
  PageMGroup: 2
  PageMModule: 2
  PageMClass: 5
- PageMProperty: 10
+ PageMProperty: 15
  PagePerson: 0
  PageTag: 0
 class_module_95d0_58d_58dInt.html
@@ -25,15 +25,20 @@ module_module_95d0_58d_58dmodule_95d0.html
 module_module_95d1_58d_58dmodule_95d1.html
 package_module_95d0.html
 package_module_95d1.html
+property_module_95d0_58d_58dInt_58d_58ddefaultinit.html
+property_module_95d0_58d_58dObject_58d_58ddefaultinit.html
 property_module_95d0_58d_58dObject_58d_58dinit.html
 property_module_95d0_58d_58dObject_58d_58doutput.html
 property_module_95d0_58d_58dObject_58d_58dprint.html
+property_module_95d0_58d_58dSys_58d_58ddefaultinit.html
 property_module_95d0_58d_58dSys_58d_58dmain.html
 property_module_95d1_58d_58dA_58d_58da1.html
 property_module_95d1_58d_58dA_58d_58da12.html
 property_module_95d1_58d_58dA_58d_58da123.html
 property_module_95d1_58d_58dA_58d_58da13.html
+property_module_95d1_58d_58dA_58d_58ddefaultinit.html
 property_module_95d1_58d_58dB_58d_58dall2.html
 property_module_95d1_58d_58dB_58d_58dall25.html
+property_module_95d1_58d_58dB_58d_58ddefaultinit.html
 quicksearch-list.js
 vendors/
index 268190c..6d7fcc3 100644 (file)
@@ -1,13 +1,13 @@
 Parsing code...
 Generating documentation pages...
 Documentation produced in `out/nitdoc_args2.write`
-Generated 28/28 pages
+Generated 31/31 pages
  PageHome: 1
  PageMPackage: 1
  PageMGroup: 1
  PageMModule: 1
  PageMClass: 7
- PageMProperty: 17
+ PageMProperty: 20
  PagePerson: 0
  PageTag: 0
 class_base_attr_nullable_58d_58dBar.html
@@ -26,19 +26,22 @@ module_base_attr_nullable_58d_58dbase_attr_nullable.html
 package_base_attr_nullable.html
 property_base_attr_nullable_58d_58dBar_58d_58da3.html
 property_base_attr_nullable_58d_58dBar_58d_58da3_61d.html
+property_base_attr_nullable_58d_58dBar_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dFoo_58d_58da1.html
 property_base_attr_nullable_58d_58dFoo_58d_58da1_61d.html
 property_base_attr_nullable_58d_58dFoo_58d_58da2.html
 property_base_attr_nullable_58d_58dFoo_58d_58da2_61d.html
+property_base_attr_nullable_58d_58dFoo_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dFoo_58d_58dnop.html
 property_base_attr_nullable_58d_58dFoo_58d_58drun.html
 property_base_attr_nullable_58d_58dFoo_58d_58drun_other.html
 property_base_attr_nullable_58d_58dInt_58d_58d_43d.html
 property_base_attr_nullable_58d_58dInt_58d_58doutput.html
-property_base_attr_nullable_58d_58dInteger_58d_58dinit.html
+property_base_attr_nullable_58d_58dInteger_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dInteger_58d_58doutput.html
 property_base_attr_nullable_58d_58dInteger_58d_58dval.html
 property_base_attr_nullable_58d_58dInteger_58d_58dval_61d.html
+property_base_attr_nullable_58d_58dObject_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dObject_58d_58dinit.html
 property_base_attr_nullable_58d_58dSys_58d_58dmain.html
 quicksearch-list.js
index 105d27c..c61e127 100644 (file)
@@ -1,13 +1,13 @@
 Parsing code...
 Generating documentation pages...
 Documentation produced in `out/nitdoc_args3.write`
-Generated 28/28 pages
+Generated 31/31 pages
  PageHome: 1
  PageMPackage: 1
  PageMGroup: 1
  PageMModule: 1
  PageMClass: 7
- PageMProperty: 17
+ PageMProperty: 20
  PagePerson: 0
  PageTag: 0
 class_base_attr_nullable_58d_58dBar.html
@@ -26,19 +26,22 @@ module_base_attr_nullable_58d_58dbase_attr_nullable.html
 package_base_attr_nullable.html
 property_base_attr_nullable_58d_58dBar_58d_58da3.html
 property_base_attr_nullable_58d_58dBar_58d_58da3_61d.html
+property_base_attr_nullable_58d_58dBar_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dFoo_58d_58da1.html
 property_base_attr_nullable_58d_58dFoo_58d_58da1_61d.html
 property_base_attr_nullable_58d_58dFoo_58d_58da2.html
 property_base_attr_nullable_58d_58dFoo_58d_58da2_61d.html
+property_base_attr_nullable_58d_58dFoo_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dFoo_58d_58dnop.html
 property_base_attr_nullable_58d_58dFoo_58d_58drun.html
 property_base_attr_nullable_58d_58dFoo_58d_58drun_other.html
 property_base_attr_nullable_58d_58dInt_58d_58d_43d.html
 property_base_attr_nullable_58d_58dInt_58d_58doutput.html
-property_base_attr_nullable_58d_58dInteger_58d_58dinit.html
+property_base_attr_nullable_58d_58dInteger_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dInteger_58d_58doutput.html
 property_base_attr_nullable_58d_58dInteger_58d_58dval.html
 property_base_attr_nullable_58d_58dInteger_58d_58dval_61d.html
+property_base_attr_nullable_58d_58dObject_58d_58ddefaultinit.html
 property_base_attr_nullable_58d_58dObject_58d_58dinit.html
 property_base_attr_nullable_58d_58dSys_58d_58dmain.html
 quicksearch-list.js
index 3be4a55..dfe20dd 100644 (file)
@@ -1,11 +1,11 @@
 Parsing code...
 Generating documentation pages...
-Generated 111/111 pages
+Generated 134/134 pages
  PageHome: 1
  PageMPackage: 2
  PageMGroup: 7
  PageMModule: 10
  PageMClass: 22
- PageMProperty: 61
+ PageMProperty: 84
  PagePerson: 6
  PageTag: 2
index e7f3ab8..feb5de0 100644 (file)
 </span></span><span class="line" id="L33">
 </span><span class="nc_cdef foldable" id="base_simple3$B"><span class="line" id="L34"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;class B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;B&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span>
 </span><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">     <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k popupable" style="border-bottom: solid 2px red" title="Messages" data-content="&lt;div&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;1 message(s)&lt;&#47;b&gt; &lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;Warning: init with signature in base_simple3$B&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">init</span><span>(</span><span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span>
-</span><span class="line" id="L37">    <span class="nc_k">do</span>
-</span><span class="line" id="L38">            <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L39">            <span class="nc_k popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">self</span><span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span> <span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">=</span> <span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span>
-</span><span class="line" id="L40">    <span class="nc_k">end</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L41">      <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="line" id="L42"><span class="nc_k">end</span>
-</span></span><span class="line" id="L43">
-</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L44"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
-</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">  <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
-</span></span><span class="line" id="L47"><span class="nc_k">end</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k">init</span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L37">      <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="line" id="L38"><span class="nc_k">end</span>
+</span></span><span class="line" id="L39">
+</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L40"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
+</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">  <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
+</span></span><span class="line" id="L43"><span class="nc_k">end</span>
+</span></span><span class="line" id="L44">
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L45"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L46"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L47"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span>
 </span></span><span class="line" id="L48">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L49"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L50"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L51"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span>
-</span></span><span class="line" id="L52">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L53"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L54"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
-</span><span class="line" id="L55"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
-</span><span class="line" id="L56"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L57">
-</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$init" data-title="&lt;a href=&#34;#base_simple3$A$init&#34;&gt;call base_simple3$A$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$init&#34;&gt;base_simple3$A$init&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Object$init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3$A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
-</span><span class="line" id="L59"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L60">
-</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$init" data-title="&lt;a href=&#34;#base_simple3$B$init&#34;&gt;call base_simple3$B$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$init&#34;&gt;base_simple3$B$init&lt;&#47;a&gt;&lt;span&gt;(v: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
-</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L63">
-</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$init" data-title="&lt;a href=&#34;#base_simple3$C$init&#34;&gt;call base_simple3$C$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$init&#34;&gt;base_simple3$C$init&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Object$init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
-</span><span class="line" id="L65"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L66"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L49"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L50"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
+</span><span class="line" id="L51"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
+</span><span class="line" id="L52"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L53">
+</span><span class="line" id="L54"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$defaultinit" data-title="&lt;a href=&#34;#base_simple3$A$defaultinit&#34;&gt;call base_simple3$A$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$defaultinit&#34;&gt;base_simple3$A$defaultinit&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3$A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
+</span><span class="line" id="L55"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L56">
+</span><span class="line" id="L57"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$defaultinit" data-title="&lt;a href=&#34;#base_simple3$B$defaultinit&#34;&gt;call base_simple3$B$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$defaultinit&#34;&gt;base_simple3$B$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
+</span><span class="line" id="L58"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L59">
+</span><span class="line" id="L60"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$defaultinit" data-title="&lt;a href=&#34;#base_simple3$C$defaultinit&#34;&gt;call base_simple3$C$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$defaultinit&#34;&gt;base_simple3$C$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
+</span><span class="line" id="L61"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
 </span></span></span>
\ No newline at end of file
index 204c980..a4316b9 100644 (file)
 </span></span><span class="line" id="L33">
 </span><span class="nc_cdef foldable" id="base_simple3$B"><span class="line" id="L34"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;class B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;B&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span>
 </span><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">     <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k popupable" style="border-bottom: solid 2px red" title="Messages" data-content="&lt;div&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;1 message(s)&lt;&#47;b&gt; &lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;Warning: init with signature in base_simple3$B&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">init</span><span>(</span><span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span>
-</span><span class="line" id="L37">    <span class="nc_k">do</span>
-</span><span class="line" id="L38">            <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L39">            <span class="nc_k popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">self</span><span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span> <span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">=</span> <span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span>
-</span><span class="line" id="L40">    <span class="nc_k">end</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L41">      <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="line" id="L42"><span class="nc_k">end</span>
-</span></span><span class="line" id="L43">
-</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L44"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
-</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">  <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
-</span></span><span class="line" id="L47"><span class="nc_k">end</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k">init</span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L37">      <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="line" id="L38"><span class="nc_k">end</span>
+</span></span><span class="line" id="L39">
+</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L40"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
+</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">  <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
+</span></span><span class="line" id="L43"><span class="nc_k">end</span>
+</span></span><span class="line" id="L44">
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L45"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L46"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L47"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span>
 </span></span><span class="line" id="L48">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L49"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L50"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L51"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span>
-</span></span><span class="line" id="L52">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L53"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L54"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
-</span><span class="line" id="L55"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
-</span><span class="line" id="L56"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L57">
-</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$init" data-title="&lt;a href=&#34;#base_simple3$A$init&#34;&gt;call base_simple3$A$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$init&#34;&gt;base_simple3$A$init&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Object$init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3$A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
-</span><span class="line" id="L59"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L60">
-</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$init" data-title="&lt;a href=&#34;#base_simple3$B$init&#34;&gt;call base_simple3$B$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$init&#34;&gt;base_simple3$B$init&lt;&#47;a&gt;&lt;span&gt;(v: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
-</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L63">
-</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$init" data-title="&lt;a href=&#34;#base_simple3$C$init&#34;&gt;call base_simple3$C$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$init&#34;&gt;base_simple3$C$init&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Object$init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
-</span><span class="line" id="L65"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L66"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L49"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L50"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
+</span><span class="line" id="L51"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
+</span><span class="line" id="L52"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Sys$baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L53">
+</span><span class="line" id="L54"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$defaultinit" data-title="&lt;a href=&#34;#base_simple3$A$defaultinit&#34;&gt;call base_simple3$A$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$defaultinit&#34;&gt;base_simple3$A$defaultinit&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3$A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
+</span><span class="line" id="L55"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3$A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3$A$run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$A$run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L56">
+</span><span class="line" id="L57"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$defaultinit" data-title="&lt;a href=&#34;#base_simple3$B$defaultinit&#34;&gt;call base_simple3$B$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$defaultinit&#34;&gt;base_simple3$B$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
+</span><span class="line" id="L58"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L59">
+</span><span class="line" id="L60"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$defaultinit" data-title="&lt;a href=&#34;#base_simple3$C$defaultinit&#34;&gt;call base_simple3$C$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$defaultinit&#34;&gt;base_simple3$C$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
+</span><span class="line" id="L61"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3$C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
 </span></span></span></pre><script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
 <script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
 <script>$(".popupable").popover({html:true, placement:'top'})/*initialize bootstrap popover*/</script></body></html>
\ No newline at end of file
index f1c2d87..af3ce32 100644 (file)
@@ -1,10 +1,10 @@
-<span class="nitcode"><span class="line" id="XYZ38">           <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="XYZ39">          <span class="nc_k popupable" title="B" data-title="&lt;a href=&#34;#base_simple3$B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">self</span><span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span> <span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val=&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">=</span> <span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span>
-</span><span class="line" id="XYZ40">  <span class="nc_k">end</span>
-</span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="XYZ41">   <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3$B$run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3$B$val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$B$val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="line" id="XYZ42"><span class="nc_k">end</span>
-</span><span class="line" id="XYZ43">
-</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="XYZ44"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
-</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="XYZ45">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="XYZ46"> <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
-</span></span></span></span>
\ No newline at end of file
+<span class="nitcode"><span class="line" id="XYZ38"><span class="nc_k">end</span>
+</span><span class="line" id="XYZ39">
+</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="XYZ40"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3$C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3$Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
+</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="XYZ41">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3$C$val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="XYZ42"> <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3$C$val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
+</span></span><span class="line" id="XYZ43"><span class="nc_k">end</span>
+</span></span><span class="line" id="XYZ44">
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="XYZ45"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3$Sys$foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="XYZ46"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3$Sys$bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3$Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3$Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3$Int$output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span></span>
\ No newline at end of file
index 8bb2bc8..6515ef7 100644 (file)
@@ -33,11 +33,7 @@ end
 
 class B
        var val: Int
-       init(v: Int)
-       do
-               7.output
-               self.val = v
-       end
+       init do 7.output
        fun run do val.output
 end
 
index 90f6ed3..7b59e9a 100644 (file)
 </span></span><span class="line" id="L33">
 </span><span class="nc_cdef foldable" id="base_simple3$B"><span class="line" id="L34"><span class="nc_k">class</span> <a class="titled" href="#base_simple3$B" title="class B"><span class="nc_t nc_def">B</span></a>
 </span><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">     <span class="nc_k">var</span> <a class="titled" href="#base_simple3$B$val" title="base_simple3$B$val"><span class="nc_i nc_def">val</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k popupable" style="border-bottom: solid 2px red" title="Messages" data-content="&lt;div&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;1 message(s)&lt;&#47;b&gt; &lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;Warning: init with signature in base_simple3$B&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">init</span><span>(</span><span class="nc_i nc_v titled" title="v: Int">v</span><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a><span>)</span>
-</span><span class="line" id="L37">    <span class="nc_k">do</span>
-</span><span class="line" id="L38">            <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">7</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span><span class="line" id="L39">            <a class="titled" href="#base_simple3$B" title="B"><span class="nc_k">self</span></a><a class="titled" href="#base_simple3$B$val=" title="call base_simple3$B$val="><span>.</span></a><a class="titled" href="#base_simple3$B$val=" title="call base_simple3$B$val="><span class="nc_i">val</span></a> <a class="titled" href="#base_simple3$B$val=" title="call base_simple3$B$val="><span>=</span></a> <span class="nc_i nc_v titled" title="v: Int">v</span>
-</span><span class="line" id="L40">    <span class="nc_k">end</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L41">      <span class="nc_k">fun</span> <a class="titled" href="#base_simple3$B$run" title="base_simple3$B$run"><span class="nc_def"></span><span class="nc_i">run</span></a> <span class="nc_k">do</span> <a class="titled" href="#base_simple3$B$val" title="call base_simple3$B$val"><span class="nc_i">val</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span></span><span class="line" id="L42"><span class="nc_k">end</span>
-</span></span><span class="line" id="L43">
-</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L44"><span class="nc_k">class</span> <a class="titled" href="#base_simple3$C" title="class C"><span class="nc_t nc_def">C</span></a>
-</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">  <span class="nc_k">var</span> <a class="titled" href="#base_simple3$C$val1" title="base_simple3$C$val1"><span class="nc_i nc_def">val1</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a>
-</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">   <span class="nc_k">var</span> <a class="titled" href="#base_simple3$C$val2" title="base_simple3$C$val2"><span class="nc_i nc_def">val2</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a> <span>=</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">10</span></a>
-</span></span><span class="line" id="L47"><span class="nc_k">end</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k">init</span> <span class="nc_k">do</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">7</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L37">      <span class="nc_k">fun</span> <a class="titled" href="#base_simple3$B$run" title="base_simple3$B$run"><span class="nc_def"></span><span class="nc_i">run</span></a> <span class="nc_k">do</span> <a class="titled" href="#base_simple3$B$val" title="call base_simple3$B$val"><span class="nc_i">val</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span></span><span class="line" id="L38"><span class="nc_k">end</span>
+</span></span><span class="line" id="L39">
+</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L40"><span class="nc_k">class</span> <a class="titled" href="#base_simple3$C" title="class C"><span class="nc_t nc_def">C</span></a>
+</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">  <span class="nc_k">var</span> <a class="titled" href="#base_simple3$C$val1" title="base_simple3$C$val1"><span class="nc_i nc_def">val1</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a>
+</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">   <span class="nc_k">var</span> <a class="titled" href="#base_simple3$C$val2" title="base_simple3$C$val2"><span class="nc_i nc_def">val2</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a> <span>=</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">10</span></a>
+</span></span><span class="line" id="L43"><span class="nc_k">end</span>
+</span></span><span class="line" id="L44">
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L45"><span class="nc_k">fun</span> <a class="titled" href="#base_simple3$Sys$foo" title="base_simple3$Sys$foo"><span class="nc_def"></span><span class="nc_i">foo</span></a> <span class="nc_k">do</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">2</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L46"><span class="nc_k">fun</span> <a class="titled" href="#base_simple3$Sys$bar" title="base_simple3$Sys$bar"><span class="nc_def"></span><span class="nc_i">bar</span></a><span>(</span><span class="nc_i nc_v titled" title="i: Int">i</span><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v titled" title="i: Int">i</span><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L47"><span class="nc_k">fun</span> <a class="titled" href="#base_simple3$Sys$baz" title="base_simple3$Sys$baz"><span class="nc_def"></span><span class="nc_i">baz</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a> <span class="nc_k">do</span> <span class="nc_k">return</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">4</span></a>
 </span></span><span class="line" id="L48">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L49"><span class="nc_k">fun</span> <a class="titled" href="#base_simple3$Sys$foo" title="base_simple3$Sys$foo"><span class="nc_def"></span><span class="nc_i">foo</span></a> <span class="nc_k">do</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">2</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L50"><span class="nc_k">fun</span> <a class="titled" href="#base_simple3$Sys$bar" title="base_simple3$Sys$bar"><span class="nc_def"></span><span class="nc_i">bar</span></a><span>(</span><span class="nc_i nc_v titled" title="i: Int">i</span><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v titled" title="i: Int">i</span><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L51"><span class="nc_k">fun</span> <a class="titled" href="#base_simple3$Sys$baz" title="base_simple3$Sys$baz"><span class="nc_def"></span><span class="nc_i">baz</span></a><span>:</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_t">Int</span></a> <span class="nc_k">do</span> <span class="nc_k">return</span> <a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">4</span></a>
-</span></span><span class="line" id="L52">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L53"><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">1</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span><span class="line" id="L54"><a class="titled" href="#base_simple3$Sys$foo" title="call base_simple3$Sys$foo"><span class="nc_i">foo</span></a>
-</span><span class="line" id="L55"><a class="titled" href="#base_simple3$Sys$bar" title="call base_simple3$Sys$bar"><span class="nc_i">bar</span></a><span>(</span><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">3</span></a><span>)</span>
-</span><span class="line" id="L56"><a class="titled" href="#base_simple3$Sys$baz" title="call base_simple3$Sys$baz"><span class="nc_i">baz</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span><span class="line" id="L57">
-</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_i nc_v titled" title="a: A">a</span> <span>=</span> <a class="titled" href="#base_simple3$A$init" title="call base_simple3$A$init"><span class="nc_k">new</span></a> <a class="titled" href="#base_simple3$A" title="A"><span class="nc_t">A</span></a>
-</span><span class="line" id="L59"><span class="nc_i nc_v titled" title="a: A">a</span><a class="titled" href="#base_simple3$A$run" title="call base_simple3$A$run"><span>.</span></a><a class="titled" href="#base_simple3$A$run" title="call base_simple3$A$run"><span class="nc_i">run</span></a>
-</span><span class="line" id="L60">
-</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_i nc_v titled" title="b: B">b</span> <span>=</span> <a class="titled" href="#base_simple3$B$init" title="call base_simple3$B$init"><span class="nc_k">new</span></a> <a class="titled" href="#base_simple3$B" title="B"><span class="nc_t">B</span></a><span>(</span><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">8</span></a><span>)</span>
-</span><span class="line" id="L62"><span class="nc_i nc_v titled" title="b: B">b</span><a class="titled" href="#base_simple3$B$run" title="call base_simple3$B$run"><span>.</span></a><a class="titled" href="#base_simple3$B$run" title="call base_simple3$B$run"><span class="nc_i">run</span></a>
-</span><span class="line" id="L63">
-</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_i nc_v titled" title="c: C">c</span> <span>=</span> <a class="titled" href="#base_simple3$C$init" title="call base_simple3$C$init"><span class="nc_k">new</span></a> <a class="titled" href="#base_simple3$C" title="C"><span class="nc_t">C</span></a><span>(</span><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">9</span></a><span>)</span>
-</span><span class="line" id="L65"><span class="nc_i nc_v titled" title="c: C">c</span><a class="titled" href="#base_simple3$C$val1" title="call base_simple3$C$val1"><span>.</span></a><a class="titled" href="#base_simple3$C$val1" title="call base_simple3$C$val1"><span class="nc_i">val1</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
-</span><span class="line" id="L66"><span class="nc_i nc_v titled" title="c: C">c</span><a class="titled" href="#base_simple3$C$val2" title="call base_simple3$C$val2"><span>.</span></a><a class="titled" href="#base_simple3$C$val2" title="call base_simple3$C$val2"><span class="nc_i">val2</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L49"><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">1</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span><span class="line" id="L50"><a class="titled" href="#base_simple3$Sys$foo" title="call base_simple3$Sys$foo"><span class="nc_i">foo</span></a>
+</span><span class="line" id="L51"><a class="titled" href="#base_simple3$Sys$bar" title="call base_simple3$Sys$bar"><span class="nc_i">bar</span></a><span>(</span><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">3</span></a><span>)</span>
+</span><span class="line" id="L52"><a class="titled" href="#base_simple3$Sys$baz" title="call base_simple3$Sys$baz"><span class="nc_i">baz</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span><span class="line" id="L53">
+</span><span class="line" id="L54"><span class="nc_k">var</span> <span class="nc_i nc_v titled" title="a: A">a</span> <span>=</span> <a class="titled" href="#base_simple3$A$defaultinit" title="call base_simple3$A$defaultinit"><span class="nc_k">new</span></a> <a class="titled" href="#base_simple3$A" title="A"><span class="nc_t">A</span></a>
+</span><span class="line" id="L55"><span class="nc_i nc_v titled" title="a: A">a</span><a class="titled" href="#base_simple3$A$run" title="call base_simple3$A$run"><span>.</span></a><a class="titled" href="#base_simple3$A$run" title="call base_simple3$A$run"><span class="nc_i">run</span></a>
+</span><span class="line" id="L56">
+</span><span class="line" id="L57"><span class="nc_k">var</span> <span class="nc_i nc_v titled" title="b: B">b</span> <span>=</span> <a class="titled" href="#base_simple3$B$defaultinit" title="call base_simple3$B$defaultinit"><span class="nc_k">new</span></a> <a class="titled" href="#base_simple3$B" title="B"><span class="nc_t">B</span></a><span>(</span><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">8</span></a><span>)</span>
+</span><span class="line" id="L58"><span class="nc_i nc_v titled" title="b: B">b</span><a class="titled" href="#base_simple3$B$run" title="call base_simple3$B$run"><span>.</span></a><a class="titled" href="#base_simple3$B$run" title="call base_simple3$B$run"><span class="nc_i">run</span></a>
+</span><span class="line" id="L59">
+</span><span class="line" id="L60"><span class="nc_k">var</span> <span class="nc_i nc_v titled" title="c: C">c</span> <span>=</span> <a class="titled" href="#base_simple3$C$defaultinit" title="call base_simple3$C$defaultinit"><span class="nc_k">new</span></a> <a class="titled" href="#base_simple3$C" title="C"><span class="nc_t">C</span></a><span>(</span><a class="titled" href="#base_simple3$Int" title="Int"><span class="nc_l">9</span></a><span>)</span>
+</span><span class="line" id="L61"><span class="nc_i nc_v titled" title="c: C">c</span><a class="titled" href="#base_simple3$C$val1" title="call base_simple3$C$val1"><span>.</span></a><a class="titled" href="#base_simple3$C$val1" title="call base_simple3$C$val1"><span class="nc_i">val1</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
+</span><span class="line" id="L62"><span class="nc_i nc_v titled" title="c: C">c</span><a class="titled" href="#base_simple3$C$val2" title="call base_simple3$C$val2"><span>.</span></a><a class="titled" href="#base_simple3$C$val2" title="call base_simple3$C$val2"><span class="nc_i">val2</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span>.</span></a><a class="titled" href="#base_simple3$Int$output" title="call base_simple3$Int$output"><span class="nc_i">output</span></a>
 </span></span></span></pre><script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
 <script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
 <script>$(".popupable").popover({html:true, placement:'top'})/*initialize bootstrap popover*/</script></body></html>
\ No newline at end of file
index 139d036..29e31bd 100644 (file)
@@ -1,74 +1,73 @@
 *** METRICS ***
 --- AST Metrics ---
 ## All nodes of the AST
- population: 52
+ population: 49
  minimum value: 1
- maximum value: 40
- total value: 304
- average value: 5.84
+ maximum value: 37
+ total value: 286
+ average value: 5.83
  distribution:
-  <=1: sub-population=16 (30.76%); cumulated value=16 (5.26%)
-  <=2: sub-population=5 (9.61%); cumulated value=10 (3.28%)
-  <=4: sub-population=9 (17.30%); cumulated value=28 (9.21%)
-  <=8: sub-population=12 (23.07%); cumulated value=76 (25.00%)
-  <=16: sub-population=5 (9.61%); cumulated value=59 (19.40%)
-  <=32: sub-population=4 (7.69%); cumulated value=75 (24.67%)
-  <=64: sub-population=1 (1.92%); cumulated value=40 (13.15%)
+  <=1: sub-population=15 (30.61%); cumulated value=15 (5.24%)
+  <=2: sub-population=3 (6.12%); cumulated value=6 (2.09%)
+  <=4: sub-population=12 (24.48%); cumulated value=40 (13.98%)
+  <=8: sub-population=10 (20.40%); cumulated value=67 (23.42%)
+  <=16: sub-population=4 (8.16%); cumulated value=48 (16.78%)
+  <=32: sub-population=4 (8.16%); cumulated value=73 (25.52%)
+  <=64: sub-population=1 (2.04%); cumulated value=37 (12.93%)
  list:
-  TId: 40 (13.15%)
-  APublicVisibility: 19 (6.25%)
-  AListExprs: 19 (6.25%)
-  AQid: 19 (6.25%)
-  ACallExpr: 18 (5.92%)
-  TClassid: 15 (4.93%)
-  AQclassid: 15 (4.93%)
-  TInteger: 10 (3.28%)
-  AIntegerExpr: 10 (3.28%)
-  AType: 9 (2.96%)
+  TId: 37 (12.93%)
+  APublicVisibility: 19 (6.64%)
+  ACallExpr: 18 (6.29%)
+  AQid: 18 (6.29%)
+  AListExprs: 18 (6.29%)
+  AQclassid: 14 (4.89%)
+  TClassid: 14 (4.89%)
+  TInteger: 10 (3.49%)
+  AIntegerExpr: 10 (3.49%)
+  ASignature: 8 (2.79%)
   ...
-  AAnnotation: 1 (0.32%)
-  AAnnotations: 1 (0.32%)
-  AReturnExpr: 1 (0.32%)
-  TKwreturn: 1 (0.32%)
-  AInterfaceClasskind: 1 (0.32%)
-  TKwinterface: 1 (0.32%)
-  ANoImport: 1 (0.32%)
-  AMainMethPropdef: 1 (0.32%)
-  AMainClassdef: 1 (0.32%)
-  TKwimport: 1 (0.32%)
+  TKwreturn: 1 (0.34%)
+  AAnnotation: 1 (0.34%)
+  AParam: 1 (0.34%)
+  AMainMethPropdef: 1 (0.34%)
+  AInterfaceClasskind: 1 (0.34%)
+  TKwinterface: 1 (0.34%)
+  ANoImport: 1 (0.34%)
+  ABlockExpr: 1 (0.34%)
+  AMainClassdef: 1 (0.34%)
+  TKwimport: 1 (0.34%)
 ## All identifiers of the AST
- population: 20
+ population: 19
  minimum value: 1
  maximum value: 11
- total value: 55
- average value: 2.75
+ total value: 51
+ average value: 2.68
  distribution:
-  <=1: sub-population=3 (15.00%); cumulated value=3 (5.45%)
-  <=2: sub-population=12 (60.00%); cumulated value=24 (43.63%)
-  <=4: sub-population=3 (15.00%); cumulated value=10 (18.18%)
-  <=8: sub-population=1 (5.00%); cumulated value=7 (12.72%)
-  <=16: sub-population=1 (5.00%); cumulated value=11 (20.00%)
+  <=1: sub-population=3 (15.78%); cumulated value=3 (5.88%)
+  <=2: sub-population=12 (63.15%); cumulated value=24 (47.05%)
+  <=4: sub-population=2 (10.52%); cumulated value=7 (13.72%)
+  <=8: sub-population=1 (5.26%); cumulated value=6 (11.76%)
+  <=16: sub-population=1 (5.26%); cumulated value=11 (21.56%)
  list:
-  output: 11 (20.00%)
-  Int: 7 (12.72%)
-  run: 4 (7.27%)
-  c: 3 (5.45%)
-  val: 3 (5.45%)
-  i: 2 (3.63%)
-  bar: 2 (3.63%)
-  foo: 2 (3.63%)
-  val2: 2 (3.63%)
-  val1: 2 (3.63%)
-  C: 2 (3.63%)
-  v: 2 (3.63%)
-  baz: 2 (3.63%)
-  a: 2 (3.63%)
-  A: 2 (3.63%)
-  B: 2 (3.63%)
-  b: 2 (3.63%)
-  intern: 1 (1.81%)
-  Object: 1 (1.81%)
-  Bool: 1 (1.81%)
+  output: 11 (21.56%)
+  Int: 6 (11.76%)
+  run: 4 (7.84%)
+  c: 3 (5.88%)
+  baz: 2 (3.92%)
+  i: 2 (3.92%)
+  bar: 2 (3.92%)
+  val2: 2 (3.92%)
+  val1: 2 (3.92%)
+  C: 2 (3.92%)
+  val: 2 (3.92%)
+  B: 2 (3.92%)
+  a: 2 (3.92%)
+  A: 2 (3.92%)
+  foo: 2 (3.92%)
+  b: 2 (3.92%)
+  intern: 1 (1.96%)
+  Object: 1 (1.96%)
+  Bool: 1 (1.96%)
 --- Detection of variance constraints on formal parameter types ---
 -- Generic classes --
  list:
@@ -221,41 +220,41 @@ Number of refined classes: 0 (0.00%)
 Average number of class refinments by classes: 0.00
 Average number of class refinments by refined classes: na
 
-Number of properties: 18
-  Number of MAttribute: 3 (16.66%)
-  Number of MMethod: 15 (83.33%)
+Number of properties: 21
+  Number of MAttribute: 3 (14.28%)
+  Number of MMethod: 18 (85.71%)
 
-Number of property definitions: 20
-Number of redefined properties: 1 (5.55%)
-Average number of property redefinitions by property: 0.11
+Number of property definitions: 23
+Number of redefined properties: 1 (4.76%)
+Average number of property redefinitions by property: 0.09
 Average number of property redefinitions by redefined property: 2.00
 --- Explicit vs. Implicit Self ---
-Total number of self: 5
-Total number of implicit self: 4 (80.00%)
+Total number of self: 4
+Total number of implicit self: 4 (100.00%)
 --- Construction of tables ---
 Number of runtime classes: 6 (excluding interfaces and abstract classes)
 Average number of composing class definition by runtime class: 2.00
-Total size of tables (classes and instances): 23 (not including stuff like info for subtyping or call-next-method)
-Average size of table by runtime class: 3.83
-Values never redefined: 17 (73.91%)
+Total size of tables (classes and instances): 31 (not including stuff like info for subtyping or call-next-method)
+Average size of table by runtime class: 5.16
+Values never redefined: 25 (80.64%)
 generating package_hierarchy.dot
 generating module_hierarchy.dot
 --- Metrics of the explitic static types ---
-Total number of explicit static types: 9
+Total number of explicit static types: 8
 Statistics of type usage:
  population: 4
  minimum value: 1
- maximum value: 6
- total value: 9
- average value: 2.25
+ maximum value: 5
+ total value: 8
+ average value: 2.00
  distribution:
-  <=1: sub-population=3 (75.00%); cumulated value=3 (33.33%)
-  <=8: sub-population=1 (25.00%); cumulated value=6 (66.66%)
+  <=1: sub-population=3 (75.00%); cumulated value=3 (37.50%)
+  <=8: sub-population=1 (25.00%); cumulated value=5 (62.50%)
  list:
-  Int: 6 (66.66%)
-  C: 1 (11.11%)
-  B: 1 (11.11%)
-  A: 1 (11.11%)
+  Int: 5 (62.50%)
+  C: 1 (12.50%)
+  B: 1 (12.50%)
+  A: 1 (12.50%)
 
 # MClasses metrics
 
@@ -292,11 +291,11 @@ Statistics of type usage:
          std: 0.926
          sum: 6
        cnbp: number of accessible properties (inherited + local)
-         avg: 3.0
-         max: C (7)
-         min: Object (1)
-         std: 2.36
-         sum: 24
+         avg: 4.0
+         max: C (9)
+         min: Object (2)
+         std: 2.591
+         sum: 33
        cnba: number of accessible attributes (inherited + local)
          avg: 0.0
          max: C (2)
@@ -304,17 +303,17 @@ Statistics of type usage:
          std: 0.845
          sum: 3
        cnbi: number of accessible constructors (inherited + local)
-         avg: 1.0
-         max: B (2)
-         min: Object (1)
-         std: 0.378
-         sum: 8
+         avg: 2.0
+         max: A (3)
+         min: Object (2)
+         std: 0.655
+         sum: 17
        cnbm: number of accessible methods (inherited + local)
-         avg: 3.0
-         max: B (5)
-         min: Object (1)
-         std: 1.773
-         sum: 21
+         avg: 4.0
+         max: C (7)
+         min: Object (2)
+         std: 1.927
+         sum: 30
        cnbv: number of accessible virtual types (inherited + local)
          avg: 0.0
          max: Object (0)
@@ -322,11 +321,11 @@ Statistics of type usage:
          std: 0.0
          sum: 0
        cnbip: number of introduced properties
-         avg: 2.0
-         max: C (6)
+         avg: 3.0
+         max: C (7)
          min: Bool (0)
          std: 2.268
-         sum: 18
+         sum: 21
        cnbrp: number of redefined properties
          avg: 0.0
          max: A (1)
@@ -334,11 +333,11 @@ Statistics of type usage:
          std: 0.535
          sum: 2
        cnbhp: number of inherited properties
-         avg: 0.0
-         max: Bool (1)
+         avg: 1.0
+         max: Bool (2)
          min: Object (0)
-         std: 0.926
-         sum: 6
+         std: 1.0
+         sum: 12
 
  ## global metrics
        cnoa: number of ancestor classes
@@ -372,11 +371,11 @@ Statistics of type usage:
          std: 0.926
          sum: 6
        cnbp: number of accessible properties (inherited + local)
-         avg: 3.0
-         max: C (7)
-         min: Object (1)
-         std: 2.36
-         sum: 24
+         avg: 4.0
+         max: C (9)
+         min: Object (2)
+         std: 2.591
+         sum: 33
        cnba: number of accessible attributes (inherited + local)
          avg: 0.0
          max: C (2)
@@ -384,17 +383,17 @@ Statistics of type usage:
          std: 0.845
          sum: 3
        cnbi: number of accessible constructors (inherited + local)
-         avg: 1.0
-         max: B (2)
-         min: Object (1)
-         std: 0.378
-         sum: 8
+         avg: 2.0
+         max: A (3)
+         min: Object (2)
+         std: 0.655
+         sum: 17
        cnbm: number of accessible methods (inherited + local)
-         avg: 3.0
-         max: B (5)
-         min: Object (1)
-         std: 1.773
-         sum: 21
+         avg: 4.0
+         max: C (7)
+         min: Object (2)
+         std: 1.927
+         sum: 30
        cnbv: number of accessible virtual types (inherited + local)
          avg: 0.0
          max: Object (0)
@@ -402,11 +401,11 @@ Statistics of type usage:
          std: 0.0
          sum: 0
        cnbip: number of introduced properties
-         avg: 2.0
-         max: C (6)
+         avg: 3.0
+         max: C (7)
          min: Bool (0)
          std: 2.268
-         sum: 18
+         sum: 21
        cnbrp: number of redefined properties
          avg: 0.0
          max: A (1)
@@ -414,11 +413,11 @@ Statistics of type usage:
          std: 0.535
          sum: 2
        cnbhp: number of inherited properties
-         avg: 0.0
-         max: Bool (1)
+         avg: 1.0
+         max: Bool (2)
          min: Object (0)
-         std: 0.926
-         sum: 6
+         std: 1.0
+         sum: 12
 
 # MModules metrics
 
@@ -738,27 +737,27 @@ Warning: no source file for `base_simple3`
          sum: 0.143
 
 # Mendel metrics
-       large mclasses (threshold: 3.915)
+       large mclasses (threshold: 4.915)
+          B: 5
           C: 5
-          B: 4
-          Sys: 4
-       budding mclasses (threshold: 5.033)
-       blooming mclasses (threshold: 21.874)
-          C: 25.0
+       budding mclasses (threshold: 3.231)
+          C: 3.5
+       blooming mclasses (threshold: 15.285)
+          C: 17.5
 --- Detection of the usage of covariance static type conformance ---
 -- Total --
 - Kinds of the subtype -
  list:
-  primitive type: 6 (100.00%)
-  total: 6
+  primitive type: 5 (100.00%)
+  total: 5
 - Variance -
  list:
-  monomorph: 6 (100.00%)
-  total: 6
+  monomorph: 5 (100.00%)
+  total: 5
 - Classes of the subtype -
  list:
-  Int: 6 (100.00%)
-  total: 6
+  Int: 5 (100.00%)
+  total: 5
 -- On covariance only --
 - Specific covariance case explanations -
  list:
@@ -815,7 +814,7 @@ Warning: no source file for `base_simple3`
        cnbna: number of accessible nullable attributes (inherited + local) -- nothing
          sum: 0
 --- Sends on Nullable Receiver ---
-Total number of sends: 19
+Total number of sends: 18
 Number of sends on a unsafe nullable receiver: 0 (0.00%)
 Number of sends on a safe nullable receiver: 0 (0.00%)
 Number of buggy sends (cannot determine the type of the receiver): 0 (0.00%)
@@ -848,17 +847,17 @@ Number of buggy sends (cannot determine the type of the receiver): 0 (0.00%)
          std: 0.0
          sum: 17
        mnlm: number of live methods in a mmodule
-         avg: 14.0
-         max: base_simple3 (14)
-         min: base_simple3 (14)
-         std: 0.0
-         sum: 14
-       mnlmd: number of live method definitions in a mmodule
          avg: 16.0
          max: base_simple3 (16)
          min: base_simple3 (16)
          std: 0.0
          sum: 16
+       mnlmd: number of live method definitions in a mmodule
+         avg: 18.0
+         max: base_simple3 (18)
+         min: base_simple3 (18)
+         std: 0.0
+         sum: 18
        mnldd: number of dead method definitions in a mmodule
          avg: 0.0
          max: base_simple3 (0)
@@ -901,49 +900,49 @@ Number of buggy sends (cannot determine the type of the receiver): 0 (0.00%)
          sum: 0
 
  ## Callsites
-* 23 live callsites
+* 21 live callsites
 MMethodDef locally designated (by number of CallSites)
- population: 14
+ population: 12
  minimum value: 1
  maximum value: 10
- total value: 23
- average value: 1.64
+ total value: 21
+ average value: 1.75
  distribution:
-  <=1: sub-population=13 (92.85%); cumulated value=13 (56.52%)
-  <=16: sub-population=1 (7.14%); cumulated value=10 (43.47%)
+  <=1: sub-population=11 (91.66%); cumulated value=11 (52.38%)
+  <=16: sub-population=1 (8.33%); cumulated value=10 (47.61%)
  list:
-  base_simple3$Int$output: 10 (43.47%)
-  base_simple3$B$val: 1 (4.34%)
-  base_simple3$B$val=: 1 (4.34%)
-  base_simple3$Object$init: 1 (4.34%)
-  base_simple3$C$val2: 1 (4.34%)
+  base_simple3$Int$output: 10 (47.61%)
+  base_simple3$B$val: 1 (4.76%)
+  base_simple3$C$val2: 1 (4.76%)
+  base_simple3$C$val1: 1 (4.76%)
+  base_simple3$B$run: 1 (4.76%)
   ...
-  base_simple3$A$init: 1 (4.34%)
-  base_simple3$Sys$baz: 1 (4.34%)
-  base_simple3$Sys$bar: 1 (4.34%)
-  base_simple3$Sys$foo: 1 (4.34%)
-  base_simple3$C$init: 1 (4.34%)
+  base_simple3$A$defaultinit: 1 (4.76%)
+  base_simple3$Sys$baz: 1 (4.76%)
+  base_simple3$Sys$bar: 1 (4.76%)
+  base_simple3$Sys$foo: 1 (4.76%)
+  base_simple3$C$defaultinit: 1 (4.76%)
 MMethodDef possibly invoked at runtime (by number of CallSites)
- population: 14
+ population: 12
  minimum value: 1
  maximum value: 10
- total value: 23
- average value: 1.64
+ total value: 21
+ average value: 1.75
  distribution:
-  <=1: sub-population=13 (92.85%); cumulated value=13 (56.52%)
-  <=16: sub-population=1 (7.14%); cumulated value=10 (43.47%)
+  <=1: sub-population=11 (91.66%); cumulated value=11 (52.38%)
+  <=16: sub-population=1 (8.33%); cumulated value=10 (47.61%)
  list:
-  base_simple3$Int$output: 10 (43.47%)
-  base_simple3$B$val: 1 (4.34%)
-  base_simple3$B$val=: 1 (4.34%)
-  base_simple3$Object$init: 1 (4.34%)
-  base_simple3$C$val2: 1 (4.34%)
+  base_simple3$Int$output: 10 (47.61%)
+  base_simple3$B$val: 1 (4.76%)
+  base_simple3$C$val2: 1 (4.76%)
+  base_simple3$C$val1: 1 (4.76%)
+  base_simple3$B$run: 1 (4.76%)
   ...
-  base_simple3$A$init: 1 (4.34%)
-  base_simple3$Sys$baz: 1 (4.34%)
-  base_simple3$Sys$bar: 1 (4.34%)
-  base_simple3$Sys$foo: 1 (4.34%)
-  base_simple3$C$init: 1 (4.34%)
+  base_simple3$A$defaultinit: 1 (4.76%)
+  base_simple3$Sys$baz: 1 (4.76%)
+  base_simple3$Sys$bar: 1 (4.76%)
+  base_simple3$Sys$foo: 1 (4.76%)
+  base_simple3$C$defaultinit: 1 (4.76%)
 class_hierarchy.dot
 classdef_hierarchy.dot
 inheritance/
index 6bf7b3d..251dd03 100644 (file)
@@ -7,7 +7,7 @@ Long method:  Average 1 lines
                -total_strengh has 2 lines
                -total_endurance has 2 lines
                -total_intelligence has 2 lines
-Large class: 6 attributes and 18 methods (4.673A 6.923M Average)
+Large class: 6 attributes and 18 methods (4.673A 6.858M Average)
 --------------------
 Full name: test_prog$GameTest Location: test_prog/tests/test_game.nit:25,1--33,3
 Feature envy:
index 0ef08f3..972ccf1 100644 (file)
@@ -2,4 +2,4 @@
 --- Code Smells Metrics ---
 --------------------
 Full name: TestNitsmells$LargeClass Location: TestNitsmells/LargeClass/largeclass.nit:20,1--55,3
-Large class: 18 attributes and 48 methods (17.515A 30.464M Average)
+Large class: 18 attributes and 49 methods (17.515A 24.215M Average)
index ecae7b8..8c7ce7d 100644 (file)
@@ -13,10 +13,10 @@ digraph G {
 subgraph clusterbase_prot_sig2 {
 label = "base_prot_sig2"
 base_prot_sig2C [
-       label = "{C|- _vpriA: nullable A\l- _vpriA2: A\l|- priA(a: A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l+ init()\l}"color="#58B26A"
+       label = "{C|- _vpriA: nullable A\l- _vpriA2: A\l|- priA(a: A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l+ init()\l+ defaultinit()\l}"color="#58B26A"
 ]
 base_prot_sig2D [
-       label = "{D|- _vpubA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vpriA2: A\l|- pubA(a: A)\l- priA(a: A)\l- vpubA(): nullable A\l- vpubA=(vpubA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpubA2(): A\l- vpubA2=(vpubA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l+ init()\l}"color="#58B26A"
+       label = "{D|- _vpubA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vpriA2: A\l|- pubA(a: A)\l- priA(a: A)\l- vpubA(): nullable A\l- vpubA=(vpubA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpubA2(): A\l- vpubA2=(vpubA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l+ init()\l+ defaultinit()\l}"color="#58B26A"
 ]
 }
 }
index 5a9488d..8fbab9b 100644 (file)
@@ -13,7 +13,7 @@ digraph G {
 subgraph clusterbase_prot_sig2 {
 label = "base_prot_sig2"
 base_prot_sig2C [
-       label = "{C||+ init()\l}"color="#58B26A"
+       label = "{C||+ init()\l+ defaultinit()\l}"color="#58B26A"
 ]
 }
 }
index a5a027f..e30a297 100644 (file)
@@ -12,31 +12,31 @@ digraph G {
                                        fontsize = 8
                                ]
 Object [
- label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ sys(): Sys\l+ init()\l}"
+ label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ sys(): Sys\l+ init()\l+ defaultinit()\l}"
 ]
 
 Sys [
- label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l+ exit(exit_value: Int)\l+ is_windows(): Bool\l}"
+ label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l+ exit(exit_value: Int)\l+ is_windows(): Bool\l+ defaultinit()\l}"
 ]
 Object -> Sys [dir=back arrowtail=open style=dashed];
 
 Comparable [
- label = "{interface\nComparable||+ \<(other: OTHER): Bool\l+ \<=(other: OTHER): Bool\l+ \>=(other: OTHER): Bool\l+ \>(other: OTHER): Bool\l+ \<=\>(other: OTHER): Int\l+ is_between(c: OTHER, d: OTHER): Bool\l+ max(other: OTHER): OTHER\l+ min(c: OTHER): OTHER\l}"
+ label = "{interface\nComparable||+ \<(other: OTHER): Bool\l+ \<=(other: OTHER): Bool\l+ \>=(other: OTHER): Bool\l+ \>(other: OTHER): Bool\l+ \<=\>(other: OTHER): Int\l+ is_between(c: OTHER, d: OTHER): Bool\l+ max(other: OTHER): OTHER\l+ min(c: OTHER): OTHER\l+ defaultinit()\l}"
 ]
 Object -> Comparable [dir=back arrowtail=open style=dashed];
 
 Discrete [
- label = "{interface\nDiscrete||+ successor(i: Int): OTHER\l+ predecessor(i: Int): OTHER\l+ distance(d: OTHER): Int\l}"
+ label = "{interface\nDiscrete||+ successor(i: Int): OTHER\l+ predecessor(i: Int): OTHER\l+ distance(d: OTHER): Int\l+ defaultinit()\l}"
 ]
 Comparable -> Discrete [dir=back arrowtail=open style=dashed];
 
 Cloneable [
- label = "{interface\nCloneable||+ clone(): SELF\l}"
+ label = "{interface\nCloneable||+ clone(): SELF\l+ defaultinit()\l}"
 ]
 Object -> Cloneable [dir=back arrowtail=open style=dashed];
 
 Numeric [
- label = "{interface\nNumeric||+ +(i: OTHER): OTHER\l+ -(i: OTHER): OTHER\l+ unary -(): OTHER\l+ *(i: OTHER): OTHER\l+ /(i: OTHER): OTHER\l+ to_i(): Int\l+ to_f(): Float\l+ to_b(): Byte\l+ is_zero(): Bool\l+ zero(): OTHER\l+ value_of(val: Numeric): OTHER\l}"
+ label = "{interface\nNumeric||+ +(i: OTHER): OTHER\l+ -(i: OTHER): OTHER\l+ unary -(): OTHER\l+ *(i: OTHER): OTHER\l+ /(i: OTHER): OTHER\l+ to_i(): Int\l+ to_f(): Float\l+ to_b(): Byte\l+ is_zero(): Bool\l+ zero(): OTHER\l+ value_of(val: Numeric): OTHER\l+ defaultinit()\l}"
 ]
 Comparable -> Numeric [dir=back arrowtail=open style=dashed];
 
@@ -68,32 +68,32 @@ Char [
 Discrete -> Char [dir=back arrowtail=open style=dashed];
 
 Pointer [
- label = "{Pointer||+ nul(): Pointer\l+ address_is_null(): Bool\l+ free()\l- native_equals(o: Pointer): Bool\l}"
+ label = "{Pointer||+ nul(): Pointer\l+ address_is_null(): Bool\l+ free()\l- native_equals(o: Pointer): Bool\l+ defaultinit()\l}"
 ]
 Object -> Pointer [dir=back arrowtail=open style=dashed];
 
 Task [
- label = "{interface\nTask||+ main()\l}"
+ label = "{interface\nTask||+ main()\l+ defaultinit()\l}"
 ]
 Object -> Task [dir=back arrowtail=open style=dashed];
 
 A [
- label = "{A|- _vpubA: nullable A\l- _vproA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vproA2: A\l- _vpriA2: A\l- _vpriB: nullable B\l- _vpriB2: B\l|+ pubA(a: A)\l# proA(a: A)\l- priA(a: A)\l+ pubA2(): A\l# proA2(): A\l- priA2(): A\l+ vpubA(): nullable A\l+ vpubA=(vpubA: nullable A)\l# vproA(): nullable A\l# vproA=(vproA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l+ vpubA2(): A\l+ vpubA2=(vpubA2: A)\l# vproA2(): A\l# vproA2=(vproA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l- priB(a: B)\l- priB2(): B\l- vpriB(): nullable B\l- vpriB=(vpriB: nullable B)\l- vpriB2(): B\l- vpriB2=(vpriB2: B)\l}"
+ label = "{A|- _vpubA: nullable A\l- _vproA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vproA2: A\l- _vpriA2: A\l- _vpriB: nullable B\l- _vpriB2: B\l|+ pubA(a: A)\l# proA(a: A)\l- priA(a: A)\l+ pubA2(): A\l# proA2(): A\l- priA2(): A\l+ vpubA(): nullable A\l+ vpubA=(vpubA: nullable A)\l# vproA(): nullable A\l# vproA=(vproA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l+ vpubA2(): A\l+ vpubA2=(vpubA2: A)\l# vproA2(): A\l# vproA2=(vproA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l- priB(a: B)\l- priB2(): B\l- vpriB(): nullable B\l- vpriB=(vpriB: nullable B)\l- vpriB2(): B\l- vpriB2=(vpriB2: B)\l+ defaultinit()\l}"
 ]
 Object -> A [dir=back arrowtail=open style=dashed];
 
 B [
- label = "{B|- _vpubA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vpriA2: A\l- _vpubB: nullable B\l- _vpriB: nullable B\l- _vpubB2: B\l- _vpriB2: B\l|- pubA(a: A)\l- priA(a: A)\l- vpubA(): nullable A\l- vpubA=(vpubA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpubA2(): A\l- vpubA2=(vpubA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l- pubB(a: B)\l- priB(a: B)\l- vpubB(): nullable B\l- vpubB=(vpubB: nullable B)\l- vpriB(): nullable B\l- vpriB=(vpriB: nullable B)\l- vpubB2(): B\l- vpubB2=(vpubB2: B)\l- vpriB2(): B\l- vpriB2=(vpriB2: B)\l}"
+ label = "{B|- _vpubA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vpriA2: A\l- _vpubB: nullable B\l- _vpriB: nullable B\l- _vpubB2: B\l- _vpriB2: B\l|- pubA(a: A)\l- priA(a: A)\l- vpubA(): nullable A\l- vpubA=(vpubA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpubA2(): A\l- vpubA2=(vpubA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l- pubB(a: B)\l- priB(a: B)\l- vpubB(): nullable B\l- vpubB=(vpubB: nullable B)\l- vpriB(): nullable B\l- vpriB=(vpriB: nullable B)\l- vpubB2(): B\l- vpubB2=(vpubB2: B)\l- vpriB2(): B\l- vpriB2=(vpriB2: B)\l+ defaultinit()\l}"
 ]
 Object -> B [dir=back arrowtail=open style=dashed];
 
 C [
- label = "{C|- _vpriA: nullable A\l- _vpriA2: A\l|- priA(a: A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l}"
+ label = "{C|- _vpriA: nullable A\l- _vpriA2: A\l|- priA(a: A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l+ defaultinit()\l}"
 ]
 Object -> C [dir=back arrowtail=open style=dashed];
 
 D [
- label = "{D|- _vpubA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vpriA2: A\l|- pubA(a: A)\l- priA(a: A)\l- vpubA(): nullable A\l- vpubA=(vpubA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpubA2(): A\l- vpubA2=(vpubA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l}"
+ label = "{D|- _vpubA: nullable A\l- _vpriA: nullable A\l- _vpubA2: A\l- _vpriA2: A\l|- pubA(a: A)\l- priA(a: A)\l- vpubA(): nullable A\l- vpubA=(vpubA: nullable A)\l- vpriA(): nullable A\l- vpriA=(vpriA: nullable A)\l- vpubA2(): A\l- vpubA2=(vpubA2: A)\l- vpriA2(): A\l- vpriA2=(vpriA2: A)\l+ defaultinit()\l}"
 ]
 Object -> D [dir=back arrowtail=open style=dashed];
 
index f03123a..3248f5a 100644 (file)
@@ -12,31 +12,31 @@ digraph G {
                                        fontsize = 8
                                ]
 Object [
- label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ sys(): Sys\l+ init()\l}"
+ label = "{interface\nObject||+ object_id(): Int\l+ is_same_type(other: Object): Bool\l+ is_same_instance(other: nullable Object): Bool\l+ ==(other: nullable Object): Bool\l+ !=(other: nullable Object): Bool\l+ output()\l+ output_class_name()\l+ hash(): Int\l+ sys(): Sys\l+ init()\l+ defaultinit()\l}"
 ]
 
 Sys [
- label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l+ exit(exit_value: Int)\l+ is_windows(): Bool\l}"
+ label = "{Sys||+ main()\l+ run()\l+ errno(): Int\l+ exit(exit_value: Int)\l+ is_windows(): Bool\l+ defaultinit()\l}"
 ]
 Object -> Sys [dir=back arrowtail=open style=dashed];
 
 Comparable [
- label = "{interface\nComparable||+ \<(other: OTHER): Bool\l+ \<=(other: OTHER): Bool\l+ \>=(other: OTHER): Bool\l+ \>(other: OTHER): Bool\l+ \<=\>(other: OTHER): Int\l+ is_between(c: OTHER, d: OTHER): Bool\l+ max(other: OTHER): OTHER\l+ min(c: OTHER): OTHER\l}"
+ label = "{interface\nComparable||+ \<(other: OTHER): Bool\l+ \<=(other: OTHER): Bool\l+ \>=(other: OTHER): Bool\l+ \>(other: OTHER): Bool\l+ \<=\>(other: OTHER): Int\l+ is_between(c: OTHER, d: OTHER): Bool\l+ max(other: OTHER): OTHER\l+ min(c: OTHER): OTHER\l+ defaultinit()\l}"
 ]
 Object -> Comparable [dir=back arrowtail=open style=dashed];
 
 Discrete [
- label = "{interface\nDiscrete||+ successor(i: Int): OTHER\l+ predecessor(i: Int): OTHER\l+ distance(d: OTHER): Int\l}"
+ label = "{interface\nDiscrete||+ successor(i: Int): OTHER\l+ predecessor(i: Int): OTHER\l+ distance(d: OTHER): Int\l+ defaultinit()\l}"
 ]
 Comparable -> Discrete [dir=back arrowtail=open style=dashed];
 
 Cloneable [
- label = "{interface\nCloneable||+ clone(): SELF\l}"
+ label = "{interface\nCloneable||+ clone(): SELF\l+ defaultinit()\l}"
 ]
 Object -> Cloneable [dir=back arrowtail=open style=dashed];
 
 Numeric [
- label = "{interface\nNumeric||+ +(i: OTHER): OTHER\l+ -(i: OTHER): OTHER\l+ unary -(): OTHER\l+ *(i: OTHER): OTHER\l+ /(i: OTHER): OTHER\l+ to_i(): Int\l+ to_f(): Float\l+ to_b(): Byte\l+ is_zero(): Bool\l+ zero(): OTHER\l+ value_of(val: Numeric): OTHER\l}"
+ label = "{interface\nNumeric||+ +(i: OTHER): OTHER\l+ -(i: OTHER): OTHER\l+ unary -(): OTHER\l+ *(i: OTHER): OTHER\l+ /(i: OTHER): OTHER\l+ to_i(): Int\l+ to_f(): Float\l+ to_b(): Byte\l+ is_zero(): Bool\l+ zero(): OTHER\l+ value_of(val: Numeric): OTHER\l+ defaultinit()\l}"
 ]
 Comparable -> Numeric [dir=back arrowtail=open style=dashed];
 
@@ -68,22 +68,22 @@ Char [
 Discrete -> Char [dir=back arrowtail=open style=dashed];
 
 Pointer [
- label = "{Pointer||+ nul(): Pointer\l+ address_is_null(): Bool\l+ free()\l}"
+ label = "{Pointer||+ nul(): Pointer\l+ address_is_null(): Bool\l+ free()\l+ defaultinit()\l}"
 ]
 Object -> Pointer [dir=back arrowtail=open style=dashed];
 
 Task [
- label = "{interface\nTask||+ main()\l}"
+ label = "{interface\nTask||+ main()\l+ defaultinit()\l}"
 ]
 Object -> Task [dir=back arrowtail=open style=dashed];
 
 A [
- label = "{A||+ pubA(a: A)\l# proA(a: A)\l+ pubA2(): A\l# proA2(): A\l+ vpubA(): nullable A\l+ vpubA=(vpubA: nullable A)\l# vproA(): nullable A\l# vproA=(vproA: nullable A)\l+ vpubA2(): A\l+ vpubA2=(vpubA2: A)\l# vproA2(): A\l# vproA2=(vproA2: A)\l}"
+ label = "{A||+ pubA(a: A)\l# proA(a: A)\l+ pubA2(): A\l# proA2(): A\l+ vpubA(): nullable A\l+ vpubA=(vpubA: nullable A)\l# vproA(): nullable A\l# vproA=(vproA: nullable A)\l+ vpubA2(): A\l+ vpubA2=(vpubA2: A)\l# vproA2(): A\l# vproA2=(vproA2: A)\l+ defaultinit()\l}"
 ]
 Object -> A [dir=back arrowtail=open style=dashed];
 
 C [
- label = "{C||}"
+ label = "{C||+ defaultinit()\l}"
 ]
 Object -> C [dir=back arrowtail=open style=dashed];
 
index 48c2f5f..36bf720 100644 (file)
@@ -5,5 +5,5 @@ Documentation for `base_simple3::Sys::foo`:
 
  + base_simple3::Sys::foo
    fun foo
-   base_simple3.nit:49,1--19
+   base_simple3.nit:45,1--19
 
index e191640..8c12ac9 100644 (file)
@@ -7,7 +7,7 @@ Features for `base_simple3::base_simple3`:
 
  + base_simple3$B
    class B
-   base_simple3.nit:34,1--42,3
+   base_simple3.nit:34,1--38,3
 
  + base_simple3$Bool
    enum Bool
@@ -15,7 +15,7 @@ Features for `base_simple3::base_simple3`:
 
  + base_simple3$C
    class C
-   base_simple3.nit:44,1--47,3
+   base_simple3.nit:40,1--43,3
 
  + base_simple3$Int
    enum Int
@@ -27,5 +27,5 @@ Features for `base_simple3::base_simple3`:
 
  + base_simple3$Sys
    class Sys
-   base_simple3.nit:49,1--19
+   base_simple3.nit:45,1--19
 
index c9cc4e2..43b741f 100644 (file)
 <pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__B___val_61d">base_simple3$B$val=</h1>
 <pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
-<h1 id="base_simple3___base_simple3__B___init">base_simple3$B$init</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">  <span class="nc_k popupable" style="border-bottom: solid 2px red" title="Messages" data-content="&lt;div&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;1 message(s)&lt;&#47;b&gt; &lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;Warning: init with signature in base_simple3$B&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">init</span><span>(</span><span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span>
-</span><span class="line" id="L37">    <span class="nc_k">do</span>
-</span><span class="line" id="L38">            <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L39">            <span class="nc_k popupable" title="B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">self</span><span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span> <span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">=</span> <span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span>
-</span><span class="line" id="L40">    <span class="nc_k">end</span></span></span></span></code></pre>
+<h1 id="base_simple3___base_simple3__B___Object__init">base_simple3$B$Object::init</h1>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">  <span class="nc_k">init</span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__B___run">base_simple3$B$run</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L41">   <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L37">   <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__C____val1">base_simple3$C$_val1</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__C___val1">base_simple3$C$val1</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__C___val1_61d">base_simple3$C$val1=</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__C____val2">base_simple3$C$_val2</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__C___val2">base_simple3$C$val2</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__C___val2_61d">base_simple3$C$val2=</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">        <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__Sys___foo">base_simple3$Sys$foo</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L49"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L45"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__Sys___bar">base_simple3$Sys$bar</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L50"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L46"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__Sys___baz">base_simple3$Sys$baz</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L51"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span></span></span></span></code></pre>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L47"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span></span></span></span></code></pre>
 <h1 id="base_simple3___base_simple3__Sys___main">base_simple3$Sys$main</h1>
-<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L53"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L54"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
-</span><span class="line" id="L55"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
-</span><span class="line" id="L56"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L57">
-</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$init" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___Object__init&#34;&gt;call base_simple3$A$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___Object__init&#34;&gt;base_simple3$A$init&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object___init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
-</span><span class="line" id="L59"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L60">
-</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$init" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___init&#34;&gt;call base_simple3$B$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___init&#34;&gt;base_simple3$B$init&lt;&#47;a&gt;&lt;span&gt;(v: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
-</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L63">
-</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$init" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___Object__init&#34;&gt;call base_simple3$C$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___Object__init&#34;&gt;base_simple3$C$init&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object___init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
-</span><span class="line" id="L65"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L66"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
-<h2>AST node: AModule at base_simple3.nit:17,1--66,13</h2>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L49"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L50"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
+</span><span class="line" id="L51"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
+</span><span class="line" id="L52"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L53">
+</span><span class="line" id="L54"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$defaultinit" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___defaultinit&#34;&gt;call base_simple3$A$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___defaultinit&#34;&gt;base_simple3$A$defaultinit&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
+</span><span class="line" id="L55"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L56">
+</span><span class="line" id="L57"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$defaultinit" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___defaultinit&#34;&gt;call base_simple3$B$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___defaultinit&#34;&gt;base_simple3$B$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
+</span><span class="line" id="L58"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L59">
+</span><span class="line" id="L60"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$defaultinit" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___defaultinit&#34;&gt;call base_simple3$C$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___defaultinit&#34;&gt;base_simple3$C$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
+</span><span class="line" id="L61"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
+<h2>AST node: AModule at base_simple3.nit:17,1--62,13</h2>
 <pre><code><span class="nitcode"><span class="line" id="L17"><span class="nc_k">import</span> <span class="nc_k">end</span>
 </span><span class="line" id="L18">
 </span><span class="nc_cdef foldable" id="base_simple3$Object"><span class="line" id="L19"><span class="nc_k">interface</span> <span class="nc_t nc_def popupable" title="class Object" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Object&#34;&gt;class Object&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;Object&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; sub-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__Bool&#34;&gt;base_simple3$Bool&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys&#34;&gt;base_simple3$Sys&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">Object</span>
 </span></span><span class="line" id="L33">
 </span><span class="nc_cdef foldable" id="base_simple3$B"><span class="line" id="L34"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;class B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;B&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span>
 </span><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">     <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k popupable" style="border-bottom: solid 2px red" title="Messages" data-content="&lt;div&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;1 message(s)&lt;&#47;b&gt; &lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;Warning: init with signature in base_simple3$B&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">init</span><span>(</span><span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span>
-</span><span class="line" id="L37">    <span class="nc_k">do</span>
-</span><span class="line" id="L38">            <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L39">            <span class="nc_k popupable" title="B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">self</span><span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span> <span class="popupable" title="call base_simple3$B$val=" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;call base_simple3$B$val=&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val_61d&#34;&gt;base_simple3$B$val=&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">=</span> <span class="nc_i nc_v popupable" title="v: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;v:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">v</span>
-</span><span class="line" id="L40">    <span class="nc_k">end</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L41">      <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="line" id="L42"><span class="nc_k">end</span>
-</span></span><span class="line" id="L43">
-</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L44"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
-</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L45">  <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L46">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
-</span></span><span class="line" id="L47"><span class="nc_k">end</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$init"><span class="line" id="L36">     <span class="nc_k">init</span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">7</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$B$run"><span class="line" id="L37">      <span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;run&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">run</span></span> <span class="nc_k">do</span> <span class="nc_i popupable" title="call base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;call base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="line" id="L38"><span class="nc_k">end</span>
+</span></span><span class="line" id="L39">
+</span><span class="nc_cdef foldable" id="base_simple3$C"><span class="line" id="L40"><span class="nc_k">class</span> <span class="nc_t nc_def popupable" title="class C" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;class C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;C&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;div class=&#34;dropdown&#34;&gt; &lt;a data-toggle=&#34;dropdown&#34; href=&#34;#&#34;&gt;&lt;b&gt;hier&lt;&#47;b&gt; super-classes&lt;span class=&#34;caret&#34;&gt;&lt;&#47;span&gt;&lt;&#47;a&gt;&lt;ul class=&#34;dropdown-menu&#34; role=&#34;menu&#34; aria-labelledby=&#34;dLabel&#34;&gt;&lt;li&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object&#34;&gt;base_simple3$Object&lt;&#47;a&gt;&lt;&#47;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span>
+</span><span class="nc_pdef foldable" id="base_simple3$C$_val1"><a id="base_simple3$C$val1"></a><a id="base_simple3$C$val1="></a><span class="line" id="L41">  <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val1&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$C$_val2"><a id="base_simple3$C$val2"></a><a id="base_simple3$C$val2="></a><span class="line" id="L42">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val2&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span>=</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">10</span>
+</span></span><span class="line" id="L43"><span class="nc_k">end</span>
+</span></span><span class="line" id="L44">
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L45"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L46"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L47"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span>
 </span></span><span class="line" id="L48">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L49"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$bar"><span class="line" id="L50"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;bar&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">bar</span></span><span>(</span><span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span><span>)</span> <span class="nc_k">do</span> <span class="nc_i nc_v popupable" title="i: Int" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;i:&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">i</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span></span><span class="nc_pdef foldable" id="base_simple3$Sys$baz"><span class="line" id="L51"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;baz&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">baz</span></span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span> <span class="nc_k">do</span> <span class="nc_k">return</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">4</span>
-</span></span><span class="line" id="L52">
-</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L53"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L54"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
-</span><span class="line" id="L55"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
-</span><span class="line" id="L56"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L57">
-</span><span class="line" id="L58"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$init" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___Object__init&#34;&gt;call base_simple3$A$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___Object__init&#34;&gt;base_simple3$A$init&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object___init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
-</span><span class="line" id="L59"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L60">
-</span><span class="line" id="L61"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$init" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___init&#34;&gt;call base_simple3$B$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___init&#34;&gt;base_simple3$B$init&lt;&#47;a&gt;&lt;span&gt;(v: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
-</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
-</span><span class="line" id="L63">
-</span><span class="line" id="L64"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$init" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___Object__init&#34;&gt;call base_simple3$C$init&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___Object__init&#34;&gt;base_simple3$C$init&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;b&gt;intro&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Object___init&#34;&gt;in base_simple3$Object&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
-</span><span class="line" id="L65"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
-</span><span class="line" id="L66"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
+</span><span class="nc_pdef foldable" id="base_simple3$Sys$main"><span class="line" id="L49"><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L50"><span class="nc_i popupable" title="call base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;call base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">foo</span>
+</span><span class="line" id="L51"><span class="nc_i popupable" title="call base_simple3$Sys$bar" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;call base_simple3$Sys$bar&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___bar&#34;&gt;base_simple3$Sys$bar&lt;&#47;a&gt;&lt;span&gt;(i: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">bar</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">3</span><span>)</span>
+</span><span class="line" id="L52"><span class="nc_i popupable" title="call base_simple3$Sys$baz" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;call base_simple3$Sys$baz&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Sys___baz&#34;&gt;base_simple3$Sys$baz&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">baz</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L53">
+</span><span class="line" id="L54"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$A$defaultinit" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___defaultinit&#34;&gt;call base_simple3$A$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___defaultinit&#34;&gt;base_simple3$A$defaultinit&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="A" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;A&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">A</span>
+</span><span class="line" id="L55"><span class="nc_i nc_v popupable" title="a: A" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;a:&lt;a href=&#34;#base_simple3___base_simple3__A&#34;&gt;base_simple3$A&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">a</span><span class="popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$A$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;call base_simple3$A$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__A___run&#34;&gt;base_simple3$A$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L56">
+</span><span class="line" id="L57"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$B$defaultinit" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___defaultinit&#34;&gt;call base_simple3$B$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___defaultinit&#34;&gt;base_simple3$B$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="B" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;B&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">B</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">8</span><span>)</span>
+</span><span class="line" id="L58"><span class="nc_i nc_v popupable" title="b: B" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;b:&lt;a href=&#34;#base_simple3___base_simple3__B&#34;&gt;base_simple3$B&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">b</span><span class="popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$B$run" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;call base_simple3$B$run&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__B___run&#34;&gt;base_simple3$B$run&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">run</span>
+</span><span class="line" id="L59">
+</span><span class="line" id="L60"><span class="nc_k">var</span> <span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span> <span>=</span> <span class="nc_k popupable" title="call base_simple3$C$defaultinit" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___defaultinit&#34;&gt;call base_simple3$C$defaultinit&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___defaultinit&#34;&gt;base_simple3$C$defaultinit&lt;&#47;a&gt;&lt;span&gt;(val1: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;)&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">new</span> <span class="nc_t popupable" title="C" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;C&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">C</span><span>(</span><span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">9</span><span>)</span>
+</span><span class="line" id="L61"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val1" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;call base_simple3$C$val1&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val1&#34;&gt;base_simple3$C$val1&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val1</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span>
+</span><span class="line" id="L62"><span class="nc_i nc_v popupable" title="c: C" data-content="&lt;div&gt;&lt;b&gt;local var&lt;&#47;b&gt; &lt;span&gt;c:&lt;a href=&#34;#base_simple3___base_simple3__C&#34;&gt;base_simple3$C&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">c</span><span class="popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$C$val2" data-title="&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;call base_simple3$C$val2&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__C___val2&#34;&gt;base_simple3$C$val2&lt;&#47;a&gt;&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></span></code></pre>
 <h2>AST node: ANoImport at base_simple3.nit:17,1--10</h2>
 <pre><code><span class="nitcode"><span class="line" id="L17"><span class="nc_k">import</span> <span class="nc_k">end</span></span></span></code></pre>
 <h2>AST node: APublicVisibility at base_simple3.nit:17,1</h2>
 <pre><code><span class="nitcode"><span class="line" id="L26"> <span class="nc_k">is</span></span></span></code></pre>
 <h2>AST node: AAnnotation at base_simple3.nit:26,16--21</h2>
 <pre><code><span class="nitcode"><span class="line" id="L26"> <span class="nc_i">intern</span></span></span></code></pre>
-<h2>AST node: AIdAtid at bas***TRUNCATED***
+<h2>AST node: AIdAtid at base_simple3.nit:26,16--21</h2>
+<pre><code><span class="nitcode"><span class="line" id="L26"> <span class="nc_i">intern</span></span></span></code></pre>
+<h2>AST node: AConcreteClasskind at base_simple3.nit:29,1--5</h2>
+<pre><code><span class="nitcode"><span class="line" id="L29"><span class="nc_k">class</span></span></span></code></pre>
+<h2>AST node: TKwclass at base_simple3.nit:29,1--5</h2>
+<pre><code><span class="nitcode"><span class="line" id="L29"><span class="nc_k">class</span></span></span></code></pre>
+<h2>AST node: TKwinit at base_simple3.nit:30,2--5</h2>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$A$init"><span class="line" id="L30">  <span class="nc_k">init</span></span></span></span></code></pre>
+<h2>AST node: TKwdo at base_simple3.nit:30,7--8</h2>
+<pre><code><span class="nitcode"><span class="line" id="L30"> <span class="nc_k">do</span></span></span></code></pre>
+<h2>AST node: ACallExpr at base_simple3.nit:30,10--17</h2>
+<pre><code><span class="nitcode"><span class="line" id="L30"> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">5</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></code></pre>
+<h2>AST node: AIntegerExpr at base_simple3.nit:30,10</h2>
+<pre><code><span class="nitcode"><span class="line" id="L30"> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">5</span></span></span></code></pre>
+<h2>AST node: TInteger at base_simple3.nit:30,10</h2>
+<pre><code><span class="nitcode"><span class="line" id="L30"> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">5</span></span></span></code></pre>
+<h2>AST node: AQid at base_simple3.nit:30,12--17</h2>
+<pre><code><span class="nitcode"><span class="line" id="L30"><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">output</span></span></span></code></pre>
+<h2>AST node: AListExprs at base_simple3.nit:30,17</h2>
+<pre><code><span class="nitcode"></span></code></pre>
+<h2>AST node: AAttrPropdef at base_simple3.nit:35,2--13</h2>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">   <span class="nc_k">var</span> <span class="nc_i nc_def popupable" title="base_simple3$B$val" data-title="&lt;a href=&#34;#base_simple3___base_simple3__B___val&#34;&gt;base_simple3$B$val&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;val&lt;span&gt;: &lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">val</span><span>:</span> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></span></code></pre>
+<h2>AST node: TKwvar at base_simple3.nit:35,2--4</h2>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$B$_val"><a id="base_simple3$B$val"></a><a id="base_simple3$B$val="></a><span class="line" id="L35">   <span class="nc_k">var</span></span></span></span></code></pre>
+<h2>AST node: AType at base_simple3.nit:35,11--13</h2>
+<pre><code><span class="nitcode"><span class="line" id="L35"> <span class="nc_t popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">Int</span></span></span></code></pre>
+<h2>AST node: AImplicitSelfExpr at base_simple3.nit:37,13</h2>
+<pre><code><span class="nitcode"></span></code></pre>
+<h2>AST node: TAssign at base_simple3.nit:42,16</h2>
+<pre><code><span class="nitcode"><span class="line" id="L42"> <span>=</span></span></span></code></pre>
+<h2>AST node: ATopClassdef at base_simple3.nit:45,1--19</h2>
+<pre><code><span class="nitcode"><span class="nc_pdef foldable" id="base_simple3$Sys$foo"><span class="line" id="L45"><span class="nc_k">fun</span> <span class="nc_def popupable" title="base_simple3$Sys$foo" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Sys___foo&#34;&gt;base_simple3$Sys$foo&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;fun&lt;&#47;b&gt; &lt;span&gt;foo&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover"><span class="nc_i">foo</span></span> <span class="nc_k">do</span> <span class="nc_l popupable" title="Int" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;Int&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;class&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int&#34;&gt;base_simple3$Int&lt;&#47;a&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">2</span><span class="popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;call base_simple3$Int$output&lt;&#47;a&gt;" data-content="&lt;div&gt;&lt;b&gt;call&lt;&#47;b&gt; &lt;span&gt;&lt;a href=&#34;#base_simple3___base_simple3__Int___output&#34;&gt;base_simple3$Int$output&lt;&#47;a&gt;&lt;span&gt;&lt;&#47;span&gt;&lt;&#47;span&gt;&lt;br&#47;&gt;&lt;&#47;div&gt;" data-toggle="popover">.</span><span class="nc_i popupable" title="call base_simple3$Int$output" data-title="&lt;a href=&#34;#base_simple3___base_simple3__Int___ou***TRUNCATED***
index 7e420df..2e24ccb 100644 (file)
@@ -1,3 +1,4 @@
 # test_prog::Dwar
 
  * 1: Dwarf (test_prog::Dwarf)
+ * 2: defaultinit (test_prog::Dwarf::defaultinit)
index fb0ab9b..55de4d9 100644 (file)
@@ -1,29 +1,43 @@
 All entities, including fictive ones:
  list:
-  MMethodDef: 17 (30.35%)
-  MMethod: 15 (26.78%)
-  MClassDef: 7 (12.50%)
-  MClass: 7 (12.50%)
-  MAttributeDef: 3 (5.35%)
-  MAttribute: 3 (5.35%)
-  Model: 1 (1.78%)
-  MGroup: 1 (1.78%)
-  MPackage: 1 (1.78%)
-  MModule: 1 (1.78%)
+  MMethodDef: 20 (32.25%)
+  MMethod: 18 (29.03%)
+  MClassDef: 7 (11.29%)
+  MClass: 7 (11.29%)
+  MAttributeDef: 3 (4.83%)
+  MAttribute: 3 (4.83%)
+  Model: 1 (1.61%)
+  MGroup: 1 (1.61%)
+  MPackage: 1 (1.61%)
+  MModule: 1 (1.61%)
 All entities:
  list:
-  MMethodDef: 17 (30.35%)
-  MMethod: 15 (26.78%)
+  MMethodDef: 20 (32.25%)
+  MMethod: 18 (29.03%)
+  MClassDef: 7 (11.29%)
+  MClass: 7 (11.29%)
+  MAttributeDef: 3 (4.83%)
+  MAttribute: 3 (4.83%)
+  Model: 1 (1.61%)
+  MGroup: 1 (1.61%)
+  MPackage: 1 (1.61%)
+  MModule: 1 (1.61%)
+
+All non-private entities:
+ list:
+  MMethodDef: 20 (35.71%)
+  MMethod: 18 (32.14%)
   MClassDef: 7 (12.50%)
   MClass: 7 (12.50%)
-  MAttributeDef: 3 (5.35%)
-  MAttribute: 3 (5.35%)
-  Model: 1 (1.78%)
+  MModule: 1 (1.78%)
   MGroup: 1 (1.78%)
   MPackage: 1 (1.78%)
-  MModule: 1 (1.78%)
+  Model: 1 (1.78%)
 
-All non-private entities:
+All documented non-private entities:
+ list:
+
+All public entities:
  list:
   MMethodDef: 17 (34.00%)
   MMethod: 15 (30.00%)
@@ -34,20 +48,6 @@ All non-private entities:
   MPackage: 1 (2.00%)
   Model: 1 (2.00%)
 
-All documented non-private entities:
- list:
-
-All public entities:
- list:
-  MMethodDef: 14 (31.81%)
-  MMethod: 12 (27.27%)
-  MClassDef: 7 (15.90%)
-  MClass: 7 (15.90%)
-  MModule: 1 (2.27%)
-  MGroup: 1 (2.27%)
-  MPackage: 1 (2.27%)
-  Model: 1 (2.27%)
-
 All documented public entities:
  list:
 
@@ -56,67 +56,68 @@ Names:
 # Classes of entities
  population: 9
  minimum value: 1
- maximum value: 17
- total value: 55
- average value: 6.11
+ maximum value: 20
+ total value: 61
+ average value: 6.77
  distribution:
-  <=1: sub-population=3 (33.33%); cumulated value=3 (5.45%)
-  <=4: sub-population=2 (22.22%); cumulated value=6 (10.90%)
-  <=8: sub-population=2 (22.22%); cumulated value=14 (25.45%)
-  <=16: sub-population=1 (11.11%); cumulated value=15 (27.27%)
-  <=32: sub-population=1 (11.11%); cumulated value=17 (30.90%)
+  <=1: sub-population=3 (33.33%); cumulated value=3 (4.91%)
+  <=4: sub-population=2 (22.22%); cumulated value=6 (9.83%)
+  <=8: sub-population=2 (22.22%); cumulated value=14 (22.95%)
+  <=32: sub-population=2 (22.22%); cumulated value=38 (62.29%)
  list:
-  MMethodDef: 17 (30.90%)
-  MMethod: 15 (27.27%)
-  MClassDef: 7 (12.72%)
-  MClass: 7 (12.72%)
-  MAttributeDef: 3 (5.45%)
-  MAttribute: 3 (5.45%)
-  MPackage: 1 (1.81%)
-  MGroup: 1 (1.81%)
-  MModule: 1 (1.81%)
+  MMethodDef: 20 (32.78%)
+  MMethod: 18 (29.50%)
+  MClassDef: 7 (11.47%)
+  MClass: 7 (11.47%)
+  MAttributeDef: 3 (4.91%)
+  MAttribute: 3 (4.91%)
+  MPackage: 1 (1.63%)
+  MGroup: 1 (1.63%)
+  MModule: 1 (1.63%)
 
 # Name length of entities
- population: 55
+ population: 61
  minimum value: 12
  maximum value: 36
- total value: 1124
- average value: 20.43
+ total value: 1310
+ average value: 21.47
  distribution:
-  <=12: sub-population=1 (1.81%); cumulated value=12 (1.06%)
-  <=24: sub-population=46 (83.63%); cumulated value=874 (77.75%)
-  <=48: sub-population=8 (14.54%); cumulated value=238 (21.17%)
+  <=12: sub-population=1 (1.63%); cumulated value=12 (0.91%)
+  <=24: sub-population=44 (72.13%); cumulated value=834 (63.66%)
+  <=48: sub-population=16 (26.22%); cumulated value=464 (35.41%)
  list:
-  base_simple3::base_simple3::C::_val2: 36 (3.20%)
-  base_simple3::base_simple3::C::_val1: 36 (3.20%)
-  base_simple3::base_simple3::B::_val: 35 (3.11%)
-  base_simple3$A$Object::init: 27 (2.40%)
-  base_simple3$C$Object::init: 27 (2.40%)
-  base_simple3::base_simple3: 26 (2.31%)
-  base_simple3::Object::init: 26 (2.31%)
-  base_simple3::Int::output: 25 (2.22%)
-  base_simple3$Object$init: 24 (2.13%)
-  base_simple3::Sys::main: 23 (2.04%)
+  base_simple3::base_simple3::C::_val1: 36 (2.74%)
+  base_simple3::base_simple3::C::_val2: 36 (2.74%)
+  base_simple3::base_simple3::B::_val: 35 (2.67%)
+  base_simple3::Object::defaultinit: 33 (2.51%)
+  base_simple3$Object$defaultinit: 31 (2.36%)
+  base_simple3::A::defaultinit: 28 (2.13%)
+  base_simple3::C::defaultinit: 28 (2.13%)
+  base_simple3::B::defaultinit: 28 (2.13%)
+  base_simple3$B$Object::init: 27 (2.06%)
+  base_simple3$A$Object::init: 27 (2.06%)
   ...
-  base_simple3$Sys: 16 (1.42%)
-  base_simple3$Int: 16 (1.42%)
-  base_simple3::A: 15 (1.33%)
-  base_simple3::B: 15 (1.33%)
-  base_simple3::C: 15 (1.33%)
-  base_simple3$B: 14 (1.24%)
-  base_simple3$C: 14 (1.24%)
-  base_simple3$A: 14 (1.24%)
-  base_simple3>: 13 (1.15%)
-  base_simple3: 12 (1.06%)
+  base_simple3$Int: 16 (1.22%)
+  base_simple3$Sys: 16 (1.22%)
+  base_simple3::A: 15 (1.14%)
+  base_simple3::B: 15 (1.14%)
+  base_simple3::C: 15 (1.14%)
+  base_simple3$A: 14 (1.06%)
+  base_simple3$B: 14 (1.06%)
+  base_simple3$C: 14 (1.06%)
+  base_simple3>: 13 (0.99%)
+  base_simple3: 12 (0.91%)
 
 # All entities
 base_simple3   MPackage        base_simple3.nit        
 base_simple3>  MGroup  base_simple3.nit        
-base_simple3::base_simple3     MModule base_simple3.nit:17,1--66,13    
+base_simple3::base_simple3     MModule base_simple3.nit:17,1--62,13    
 base_simple3::Object   MClass  base_simple3.nit:19,1--20,3     
 base_simple3$Object    MClassDef       base_simple3.nit:19,1--20,3     
 base_simple3::Object::init     MMethod base_simple3.nit:19,1--20,3     
 base_simple3$Object$init       MMethodDef      base_simple3.nit:19,1--20,3     
+base_simple3::Object::defaultinit      MMethod base_simple3.nit:19,1--20,3     
+base_simple3$Object$defaultinit        MMethodDef      base_simple3.nit:19,1--20,3     
 base_simple3::Bool     MClass  base_simple3.nit:22,1--23,3     
 base_simple3$Bool      MClassDef       base_simple3.nit:22,1--23,3     
 base_simple3::Int      MClass  base_simple3.nit:25,1--27,3     
@@ -128,40 +129,44 @@ base_simple3$A    MClassDef       base_simple3.nit:29,1--32,3
 base_simple3$A$Object::init    MMethodDef      base_simple3.nit:30,2--17       
 base_simple3::A::run   MMethod base_simple3.nit:31,2--20       
 base_simple3$A$run     MMethodDef      base_simple3.nit:31,2--20       
-base_simple3::B        MClass  base_simple3.nit:34,1--42,3     
-base_simple3$B MClassDef       base_simple3.nit:34,1--42,3     
+base_simple3::A::defaultinit   MMethod base_simple3.nit:29,1--32,3     
+base_simple3$A$defaultinit     MMethodDef      base_simple3.nit:29,1--32,3     
+base_simple3::B        MClass  base_simple3.nit:34,1--38,3     
+base_simple3$B MClassDef       base_simple3.nit:34,1--38,3     
 base_simple3::base_simple3::B::_val    MAttribute      base_simple3.nit:35,2--13       
 base_simple3$B$_val    MAttributeDef   base_simple3.nit:35,2--13       
 base_simple3::B::val   MMethod base_simple3.nit:35,2--13       
 base_simple3$B$val     MMethodDef      base_simple3.nit:35,2--13       
 base_simple3::B::val=  MMethod base_simple3.nit:35,2--13       
 base_simple3$B$val=    MMethodDef      base_simple3.nit:35,2--13       
-base_simple3::B::init  MMethod base_simple3.nit:36,2--40,4     
-base_simple3$B$init    MMethodDef      base_simple3.nit:36,2--40,4     
-base_simple3::B::run   MMethod base_simple3.nit:41,2--22       
-base_simple3$B$run     MMethodDef      base_simple3.nit:41,2--22       
-base_simple3::C        MClass  base_simple3.nit:44,1--47,3     
-base_simple3$C MClassDef       base_simple3.nit:44,1--47,3     
-base_simple3::base_simple3::C::_val1   MAttribute      base_simple3.nit:45,2--14       
-base_simple3$C$_val1   MAttributeDef   base_simple3.nit:45,2--14       
-base_simple3::C::val1  MMethod base_simple3.nit:45,2--14       
-base_simple3$C$val1    MMethodDef      base_simple3.nit:45,2--14       
-base_simple3::C::val1= MMethod base_simple3.nit:45,2--14       
-base_simple3$C$val1=   MMethodDef      base_simple3.nit:45,2--14       
-base_simple3::base_simple3::C::_val2   MAttribute      base_simple3.nit:46,2--19       
-base_simple3$C$_val2   MAttributeDef   base_simple3.nit:46,2--19       
-base_simple3::C::val2  MMethod base_simple3.nit:46,2--19       
-base_simple3$C$val2    MMethodDef      base_simple3.nit:46,2--19       
-base_simple3::C::val2= MMethod base_simple3.nit:46,2--19       
-base_simple3$C$val2=   MMethodDef      base_simple3.nit:46,2--19       
-base_simple3$C$Object::init    MMethodDef      base_simple3.nit:44,1--47,3     
-base_simple3::Sys      MClass  base_simple3.nit:49,1--19       
-base_simple3$Sys       MClassDef       base_simple3.nit:49,1--19       
-base_simple3::Sys::foo MMethod base_simple3.nit:49,1--19       
-base_simple3$Sys$foo   MMethodDef      base_simple3.nit:49,1--19       
-base_simple3::Sys::bar MMethod base_simple3.nit:50,1--27       
-base_simple3$Sys$bar   MMethodDef      base_simple3.nit:50,1--27       
-base_simple3::Sys::baz MMethod base_simple3.nit:51,1--24       
-base_simple3$Sys$baz   MMethodDef      base_simple3.nit:51,1--24       
-base_simple3::Sys::main        MMethod base_simple3.nit:53,1--66,13    
-base_simple3$Sys$main  MMethodDef      base_simple3.nit:53,1--66,13    
+base_simple3$B$Object::init    MMethodDef      base_simple3.nit:36,2--17       
+base_simple3::B::run   MMethod base_simple3.nit:37,2--22       
+base_simple3$B$run     MMethodDef      base_simple3.nit:37,2--22       
+base_simple3::B::defaultinit   MMethod base_simple3.nit:34,1--38,3     
+base_simple3$B$defaultinit     MMethodDef      base_simple3.nit:34,1--38,3     
+base_simple3::C        MClass  base_simple3.nit:40,1--43,3     
+base_simple3$C MClassDef       base_simple3.nit:40,1--43,3     
+base_simple3::base_simple3::C::_val1   MAttribute      base_simple3.nit:41,2--14       
+base_simple3$C$_val1   MAttributeDef   base_simple3.nit:41,2--14       
+base_simple3::C::val1  MMethod base_simple3.nit:41,2--14       
+base_simple3$C$val1    MMethodDef      base_simple3.nit:41,2--14       
+base_simple3::C::val1= MMethod base_simple3.nit:41,2--14       
+base_simple3$C$val1=   MMethodDef      base_simple3.nit:41,2--14       
+base_simple3::base_simple3::C::_val2   MAttribute      base_simple3.nit:42,2--19       
+base_simple3$C$_val2   MAttributeDef   base_simple3.nit:42,2--19       
+base_simple3::C::val2  MMethod base_simple3.nit:42,2--19       
+base_simple3$C$val2    MMethodDef      base_simple3.nit:42,2--19       
+base_simple3::C::val2= MMethod base_simple3.nit:42,2--19       
+base_simple3$C$val2=   MMethodDef      base_simple3.nit:42,2--19       
+base_simple3::C::defaultinit   MMethod base_simple3.nit:40,1--43,3     
+base_simple3$C$defaultinit     MMethodDef      base_simple3.nit:40,1--43,3     
+base_simple3::Sys      MClass  base_simple3.nit:45,1--19       
+base_simple3$Sys       MClassDef       base_simple3.nit:45,1--19       
+base_simple3::Sys::foo MMethod base_simple3.nit:45,1--19       
+base_simple3$Sys$foo   MMethodDef      base_simple3.nit:45,1--19       
+base_simple3::Sys::bar MMethod base_simple3.nit:46,1--27       
+base_simple3$Sys$bar   MMethodDef      base_simple3.nit:46,1--27       
+base_simple3::Sys::baz MMethod base_simple3.nit:47,1--24       
+base_simple3$Sys$baz   MMethodDef      base_simple3.nit:47,1--24       
+base_simple3::Sys::main        MMethod base_simple3.nit:49,1--62,13    
+base_simple3$Sys$main  MMethodDef      base_simple3.nit:49,1--62,13    
index 445de88..020389d 100644 (file)
@@ -1,48 +1,48 @@
 All entities, including fictive ones:
  list:
-  MMethodDef: 49 (49.49%)
-  MClassDef: 21 (21.21%)
-  MClass: 10 (10.10%)
-  MMethod: 9 (9.09%)
-  MModule: 5 (5.05%)
-  MGroup: 2 (2.02%)
-  MPackage: 2 (2.02%)
-  Model: 1 (1.01%)
+  MMethodDef: 59 (49.57%)
+  MClassDef: 21 (17.64%)
+  MMethod: 19 (15.96%)
+  MClass: 10 (8.40%)
+  MModule: 5 (4.20%)
+  MGroup: 2 (1.68%)
+  MPackage: 2 (1.68%)
+  Model: 1 (0.84%)
 All entities:
  list:
-  MMethodDef: 49 (49.49%)
-  MClassDef: 21 (21.21%)
-  MClass: 10 (10.10%)
-  MMethod: 9 (9.09%)
-  MModule: 5 (5.05%)
-  MGroup: 2 (2.02%)
-  MPackage: 2 (2.02%)
-  Model: 1 (1.01%)
+  MMethodDef: 59 (49.57%)
+  MClassDef: 21 (17.64%)
+  MMethod: 19 (15.96%)
+  MClass: 10 (8.40%)
+  MModule: 5 (4.20%)
+  MGroup: 2 (1.68%)
+  MPackage: 2 (1.68%)
+  Model: 1 (0.84%)
 
 All non-private entities:
  list:
-  MMethodDef: 14 (30.43%)
-  MClassDef: 11 (23.91%)
-  MMethod: 6 (13.04%)
-  MClass: 5 (10.86%)
-  MModule: 5 (10.86%)
-  MGroup: 2 (4.34%)
-  MPackage: 2 (4.34%)
-  Model: 1 (2.17%)
+  MMethodDef: 19 (33.92%)
+  MMethod: 11 (19.64%)
+  MClassDef: 11 (19.64%)
+  MClass: 5 (8.92%)
+  MModule: 5 (8.92%)
+  MGroup: 2 (3.57%)
+  MPackage: 2 (3.57%)
+  Model: 1 (1.78%)
 
 All documented non-private entities:
  list:
 
 All public entities:
  list:
-  MMethodDef: 14 (30.43%)
-  MClassDef: 11 (23.91%)
-  MMethod: 6 (13.04%)
-  MClass: 5 (10.86%)
-  MModule: 5 (10.86%)
-  MGroup: 2 (4.34%)
-  MPackage: 2 (4.34%)
-  Model: 1 (2.17%)
+  MMethodDef: 19 (33.92%)
+  MMethod: 11 (19.64%)
+  MClassDef: 11 (19.64%)
+  MClass: 5 (8.92%)
+  MModule: 5 (8.92%)
+  MGroup: 2 (3.57%)
+  MPackage: 2 (3.57%)
+  Model: 1 (1.78%)
 
 All documented public entities:
  list:
@@ -52,58 +52,58 @@ Names:
 # Classes of entities
  population: 7
  minimum value: 2
- maximum value: 49
- total value: 98
- average value: 14.00
+ maximum value: 59
+ total value: 118
+ average value: 16.85
  distribution:
-  <=2: sub-population=2 (28.57%); cumulated value=4 (4.08%)
-  <=8: sub-population=1 (14.28%); cumulated value=5 (5.10%)
-  <=16: sub-population=2 (28.57%); cumulated value=19 (19.38%)
-  <=32: sub-population=1 (14.28%); cumulated value=21 (21.42%)
-  <=64: sub-population=1 (14.28%); cumulated value=49 (50.00%)
+  <=2: sub-population=2 (28.57%); cumulated value=4 (3.38%)
+  <=8: sub-population=1 (14.28%); cumulated value=5 (4.23%)
+  <=16: sub-population=1 (14.28%); cumulated value=10 (8.47%)
+  <=32: sub-population=2 (28.57%); cumulated value=40 (33.89%)
+  <=64: sub-population=1 (14.28%); cumulated value=59 (50.00%)
  list:
-  MMethodDef: 49 (50.00%)
-  MClassDef: 21 (21.42%)
-  MClass: 10 (10.20%)
-  MMethod: 9 (9.18%)
-  MModule: 5 (5.10%)
-  MGroup: 2 (2.04%)
-  MPackage: 2 (2.04%)
+  MMethodDef: 59 (50.00%)
+  MClassDef: 21 (17.79%)
+  MMethod: 19 (16.10%)
+  MClass: 10 (8.47%)
+  MModule: 5 (4.23%)
+  MGroup: 2 (1.69%)
+  MPackage: 2 (1.69%)
 
 # Name length of entities
- population: 98
+ population: 118
  minimum value: 5
  maximum value: 44
- total value: 1762
- average value: 17.97
+ total value: 2229
+ average value: 18.88
  distribution:
-  <=5: sub-population=1 (1.02%); cumulated value=5 (0.28%)
-  <=10: sub-population=17 (17.34%); cumulated value=141 (8.00%)
-  <=20: sub-population=48 (48.97%); cumulated value=706 (40.06%)
-  <=40: sub-population=30 (30.61%); cumulated value=822 (46.65%)
-  <=80: sub-population=2 (2.04%); cumulated value=88 (4.99%)
+  <=5: sub-population=1 (0.84%); cumulated value=5 (0.22%)
+  <=10: sub-population=17 (14.40%); cumulated value=141 (6.32%)
+  <=20: sub-population=51 (43.22%); cumulated value=765 (34.32%)
+  <=40: sub-population=47 (39.83%); cumulated value=1230 (55.18%)
+  <=80: sub-population=2 (1.69%); cumulated value=88 (3.94%)
  list:
-  names1::names1$names::n0::P0$names::n0::P::p: 44 (2.49%)
-  names1::names1$names::n0::P0$names::n0::A::z: 44 (2.49%)
-  names1::names1$names::A0$names::n0::A::z: 40 (2.27%)
-  names1::names1$names::A0$names::n0::P::p: 40 (2.27%)
-  names1::names1$names::n0::P0$names::A::a: 40 (2.27%)
-  names1::names1$names::A0$names::A::a: 36 (2.04%)
-  names1::names1$P1$names::n0::P::p: 33 (1.87%)
-  names1::names1$P1$names::n0::A::z: 33 (1.87%)
-  names::n1$::n0::P0$::n0::A::z: 29 (1.64%)
-  names1::names1$P1$names::A::a: 29 (1.64%)
+  names1::names1$names::n0::P0$names::n0::P::p: 44 (1.97%)
+  names1::names1$names::n0::P0$names::n0::A::z: 44 (1.97%)
+  names1::names1$names::A0$names::n0::A::z: 40 (1.79%)
+  names1::names1$names::A0$names::n0::P::p: 40 (1.79%)
+  names1::names1$names::n0::P0$names::A::a: 40 (1.79%)
+  names::P::defaultinit!CONFLICT!MMethod: 38 (1.70%)
+  names1::names1$names::A0$names::A::a: 36 (1.61%)
+  names1::names1$P1$names::n0::P::p: 33 (1.48%)
+  names1::names1$P1$names::n0::A::z: 33 (1.48%)
+  names1::names1$P1$names::A::a: 29 (1.30%)
   ...
-  names::n3: 9 (0.51%)
-  names::n0: 9 (0.51%)
-  names::A: 8 (0.45%)
-  names$A0: 8 (0.45%)
-  names$A1: 8 (0.45%)
-  names$A: 7 (0.39%)
-  names1>: 7 (0.39%)
-  names1: 6 (0.34%)
-  names>: 6 (0.34%)
-  names: 5 (0.28%)
+  names::n3: 9 (0.40%)
+  names::n0: 9 (0.40%)
+  names::A: 8 (0.35%)
+  names$A0: 8 (0.35%)
+  names$A1: 8 (0.35%)
+  names$A: 7 (0.31%)
+  names1>: 7 (0.31%)
+  names1: 6 (0.26%)
+  names>: 6 (0.26%)
+  names: 5 (0.22%)
 
 # All entities
 names  MPackage        names   Group of modules used to test various full_name configurations and conflicts.
@@ -120,26 +120,36 @@ names::Object     MClass  names/n0.nit:20,1--22,3 Root interface
 names$Object   MClassDef       names/n0.nit:20,1--22,3 Root interface
 names::Object::init    MMethod names/n0.nit:20,1--22,3 
 names$Object$init      MMethodDef      names/n0.nit:20,1--22,3 
+names::Object::defaultinit     MMethod names/n0.nit:20,1--22,3 
+names$Object$defaultinit       MMethodDef      names/n0.nit:20,1--22,3 
 names::A       MClass  names/n0.nit:24,1--31,3 A public class
 names$A        MClassDef       names/n0.nit:24,1--31,3 A public class
 names::A::a    MMethod names/n0.nit:26,2--27,13        A public method in a public class
 names$A$a      MMethodDef      names/n0.nit:26,2--27,13        A public method in a public class
 names::n0::A::z        MMethod names/n0.nit:29,2--30,21        A private method in a public class
 names$A$z      MMethodDef      names/n0.nit:29,2--30,21        A private method in a public class
+names::A::defaultinit  MMethod names/n0.nit:24,1--31,3 
+names$A$defaultinit    MMethodDef      names/n0.nit:24,1--31,3 
 names::A0      MClass  names/n0.nit:33,1--46,3 A public subclass in the same module
 names$A0       MClassDef       names/n0.nit:33,1--46,3 A public subclass in the same module
 names$A0$A::a  MMethodDef      names/n0.nit:38,2--39,19        Redefinition it the same module of a public method
 names$A0$::n0::A::z    MMethodDef      names/n0.nit:41,2--42,19        Redefinition it the same module of a private method
 names$A0$::n0::P::p    MMethodDef      names/n0.nit:44,2--45,19        Redefinition it the same module of a private method
+names::A0::defaultinit MMethod names/n0.nit:33,1--46,3 
+names$A0$defaultinit   MMethodDef      names/n0.nit:33,1--46,3 
 names::n0::P   MClass  names/n0.nit:48,1--52,3 A private class
 names::n0$P    MClassDef       names/n0.nit:48,1--52,3 A private class
 names::n0::P::p        MMethod names/n0.nit:50,2--51,13        A private method in a private class
 names::n0$P$p  MMethodDef      names/n0.nit:50,2--51,13        A private method in a private class
+names::P::defaultinit  MMethod names/n0.nit:48,1--52,3 
+names::n0$P$defaultinit        MMethodDef      names/n0.nit:48,1--52,3 
 names::n0::P0  MClass  names/n0.nit:54,1--67,3 A private subclass introduced in the same module
 names::n0$P0   MClassDef       names/n0.nit:54,1--67,3 A private subclass introduced in the same module
 names::n0$P0$A::a      MMethodDef      names/n0.nit:59,2--60,19        Redefinition it the same module of a public method
 names::n0$P0$::n0::A::z        MMethodDef      names/n0.nit:62,2--63,19        Redefinition it the same module of a private method
 names::n0$P0$::n0::P::p        MMethodDef      names/n0.nit:65,2--66,19        Redefinition it the same module of a private method
+names::P0::defaultinit MMethod names/n0.nit:54,1--67,3 
+names::n0$P0$defaultinit       MMethodDef      names/n0.nit:54,1--67,3 
 names::n1      MModule names/n1.nit:15,1--90,3 Second module
 names::n1$A    MClassDef       names/n1.nit:20,1--30,3 A refinement of a class
 names::n1$A$a  MMethodDef      names/n1.nit:22,2--23,19        A refinement in the same class
@@ -155,6 +165,8 @@ names$A1    MClassDef       names/n1.nit:44,1--57,3 A subclass introduced in a submodule
 names$A1$A::a  MMethodDef      names/n1.nit:49,2--50,19        A redefinition in a subclass from a different module
 names$A1$::n0::A::z    MMethodDef      names/n1.nit:52,2--53,19        A redefinition in a subclass from a different module
 names$A1$::n0::P::p    MMethodDef      names/n1.nit:55,2--56,19        A redefinition in a subclass from a different module
+names::A1::defaultinit MMethod names/n1.nit:44,1--57,3 
+names$A1$defaultinit   MMethodDef      names/n1.nit:44,1--57,3 
 names::n1$::n0::P      MClassDef       names/n1.nit:59,1--63,3 A refinement of a class
 names::n1$::n0::P$p    MMethodDef      names/n1.nit:61,2--62,19        A refinement in the same class
 names::n1$::n0::P0     MClassDef       names/n1.nit:65,1--75,3 A refinement of a subclass
@@ -166,6 +178,8 @@ names::n1$P1        MClassDef       names/n1.nit:77,1--90,3 A private subclass introduced in
 names::n1$P1$A::a      MMethodDef      names/n1.nit:82,2--83,19        A redefinition in a subclass from a different module
 names::n1$P1$::n0::A::z        MMethodDef      names/n1.nit:85,2--86,19        A redefinition in a subclass from a different module
 names::n1$P1$::n0::P::p        MMethodDef      names/n1.nit:88,2--89,19        A redefinition in a subclass from a different module
+names::P1::defaultinit MMethod names/n1.nit:77,1--90,3 
+names::n1$P1$defaultinit       MMethodDef      names/n1.nit:77,1--90,3 
 names::n2      MModule names/n2.nit:15,1--33,3 A alternative second module, used to make name conflicts
 names::n2$A    MClassDef       names/n2.nit:20,1--27,3 A refinement of a class
 names::n2::A::b        MMethod names/n2.nit:22,2--23,13        Name conflict? A second public method
@@ -176,6 +190,8 @@ names::n2::P        MClass  names/n2.nit:29,1--33,3 Name conflict? A second private clas
 names::n2$P    MClassDef       names/n2.nit:29,1--33,3 Name conflict? A second private class
 names::n2::P::p        MMethod names/n2.nit:31,2--32,13        Name conflict? A private method in an homonym class.
 names::n2$P$p  MMethodDef      names/n2.nit:31,2--32,13        Name conflict? A private method in an homonym class.
+names::P::defaultinit!CONFLICT!MMethod MMethod names/n2.nit:29,1--33,3 
+names::n2$P$defaultinit        MMethodDef      names/n2.nit:29,1--33,3 
 names1 MPackage        names1.nit      An alternative second module in a distinct package
 names1>        MGroup  names1.nit      An alternative second module in a distinct package
 names1::names1 MModule names1.nit:15,1--90,3   An alternative second module in a distinct package
@@ -193,6 +209,8 @@ names1$A1   MClassDef       names1.nit:44,1--57,3   A subclass introduced in a submodule
 names1$A1$names::A::a  MMethodDef      names1.nit:49,2--50,19  A redefinition in a subclass from a different module
 names1$A1$names::n0::A::z      MMethodDef      names1.nit:52,2--53,19  A redefinition in a subclass from a different module
 names1$A1$names::n0::P::p      MMethodDef      names1.nit:55,2--56,19  A redefinition in a subclass from a different module
+names1::A1::defaultinit        MMethod names1.nit:44,1--57,3   
+names1$A1$defaultinit  MMethodDef      names1.nit:44,1--57,3   
 names1::names1$names::n0::P    MClassDef       names1.nit:59,1--63,3   A refinement of a class
 names1::names1$names::n0::P$p  MMethodDef      names1.nit:61,2--62,19  A refinement in the same class
 names1::names1$names::n0::P0   MClassDef       names1.nit:65,1--75,3   A refinement of a subclass
@@ -204,3 +222,5 @@ names1::names1$P1   MClassDef       names1.nit:77,1--90,3   A private subclass introduced
 names1::names1$P1$names::A::a  MMethodDef      names1.nit:82,2--83,19  A redefinition in a subclass from a different module
 names1::names1$P1$names::n0::A::z      MMethodDef      names1.nit:85,2--86,19  A redefinition in a subclass from a different module
 names1::names1$P1$names::n0::P::p      MMethodDef      names1.nit:88,2--89,19  A redefinition in a subclass from a different module
+names1::P1::defaultinit        MMethod names1.nit:77,1--90,3   
+names1::names1$P1$defaultinit  MMethodDef      names1.nit:77,1--90,3   
index 92b6106..e502bb9 100644 (file)
@@ -14,23 +14,23 @@ Alcoholic Bool Career Character Combatable Dwarf Elf Float Game Human Int List M
 Alcoholic Bool Career Character Combatable Dwarf Elf Float Game Human Int List Magician Object Race Starter String Sys Warrior Weapon
 
 # mproperties:
-!= * * + + - - / / == > > OTHER _age _base_endurance _base_intelligence _base_strength _career _endurance_bonus _health _intelligence_bonus _name _race _sex _strength_bonus age age= attack base_endurance base_endurance= base_intelligence base_intelligence= base_strength base_strength= career career= computer_characters defend direct_attack dps endurance_bonus endurance_bonus= health health= hit_points init intelligence_bonus intelligence_bonus= is_dead main max_health name name= pause_game player_characters quit race race= sex sex= start start_game stop_game strength_bonus strength_bonus= to_f total_endurance total_intelligence total_strengh unary -
+!= * * + + - - / / == > > OTHER _age _base_endurance _base_intelligence _base_strength _career _endurance_bonus _health _intelligence_bonus _name _race _sex _strength_bonus age age= attack base_endurance base_endurance= base_intelligence base_intelligence= base_strength base_strength= career career= computer_characters defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defend direct_attack dps endurance_bonus endurance_bonus= health health= hit_points init intelligence_bonus intelligence_bonus= is_dead main max_health name name= pause_game player_characters quit race race= sex sex= start start_game stop_game strength_bonus strength_bonus= to_f total_endurance total_intelligence total_strengh unary -
 ------------------------------------
-!= * * + + - - / / == > > OTHER _age _base_endurance _base_intelligence _base_strength _career _endurance_bonus _health _intelligence_bonus _name _race _sex _strength_bonus age age= attack base_endurance base_endurance= base_intelligence base_intelligence= base_strength base_strength= career career= computer_characters defend direct_attack dps endurance_bonus endurance_bonus= health health= hit_points init intelligence_bonus intelligence_bonus= is_dead main max_health name name= pause_game player_characters quit race race= sex sex= start start_game stop_game strength_bonus strength_bonus= to_f total_endurance total_intelligence total_strengh unary -
+!= * * + + - - / / == > > OTHER _age _base_endurance _base_intelligence _base_strength _career _endurance_bonus _health _intelligence_bonus _name _race _sex _strength_bonus age age= attack base_endurance base_endurance= base_intelligence base_intelligence= base_strength base_strength= career career= computer_characters defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defaultinit defend direct_attack dps endurance_bonus endurance_bonus= health health= hit_points init intelligence_bonus intelligence_bonus= is_dead main max_health name name= pause_game player_characters quit race race= sex sex= start start_game stop_game strength_bonus strength_bonus= to_f total_endurance total_intelligence total_strengh unary -
 
 # msignatures:
 !=(other: OTHER): Bool
-*(f: Float): Float
 *(i: Int): Int
+*(f: Float): Float
 +(f: Float): Float
 +(i: Int): Int
 -(i: Int): Int
 -(f: Float): Float
-/(f: Float): Float
 /(i: Int): Int
+/(f: Float): Float
 ==(other: OTHER): Bool
->(f: Float): Bool
 >(i: Int): Bool
+>(f: Float): Bool
 age: Int
 age=(age: Int)
 attack(target: Combatable, weapon: Weapon): Int
@@ -43,6 +43,26 @@ base_strength=(base_strength: Int)
 career: nullable Career
 career=(career: nullable Career)
 computer_characters: List[Character]
+defaultinit
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit
+defaultinit
+defaultinit
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit
+defaultinit
+defaultinit
+defaultinit
+defaultinit
+defaultinit(race: Race, name: String, age: Int, sex: Bool)
+defaultinit
+defaultinit
 defend(hit: Int): Int
 direct_attack(target: Combatable, weapon: Weapon): Int
 dps: Float
@@ -78,17 +98,17 @@ total_strengh: Int
 unary -: Int
 ------------------------------------
 !=(other: OTHER): Bool
-*(f: Float): Float
 *(i: Int): Int
+*(f: Float): Float
 +(f: Float): Float
 +(i: Int): Int
 -(i: Int): Int
 -(f: Float): Float
-/(f: Float): Float
 /(i: Int): Int
+/(f: Float): Float
 ==(other: OTHER): Bool
->(f: Float): Bool
 >(i: Int): Bool
+>(f: Float): Bool
 age: Int
 age=(age: Int)
 attack(target: Combatable, weapon: Weapon): Int
@@ -101,6 +121,26 @@ base_strength=(base_strength: Int)
 career: nullable Career
 career=(career: nullable Career)
 computer_characters: List[Character]
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit
+defaultinit
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit
+defaultinit
+defaultinit(base_strength, base_endurance, base_intelligence: Int)
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit(strength_bonus, endurance_bonus, intelligence_bonus: Int)
+defaultinit
+defaultinit
+defaultinit
+defaultinit
+defaultinit
+defaultinit(race: Race, name: String, age: Int, sex: Bool)
+defaultinit
+defaultinit
 defend(hit: Int): Int
 direct_attack(target: Combatable, weapon: Weapon): Int
 dps: Float
index aa04d7f..40a4c73 100644 (file)
@@ -3,5 +3,5 @@ I have 1 packages
 I have 2 modules
 I have 7 classes
 For 7 definitions of classes
-I have 15 methods
-For 17 definitions of methods
+I have 18 methods
+For 20 definitions of methods