gitextract_ml0t_fts/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── bug_report.md │ └── workflows/ │ ├── build.yml │ ├── buildandtest.yml │ ├── buildandtestmultithreaded.yml │ ├── codeql.yml │ ├── examples.yml │ └── nonanboxing.yml ├── .gitignore ├── .readthedocs.yml ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── examples/ │ ├── catenoid/ │ │ └── catenoid.morpho │ ├── cholesteric/ │ │ └── cholesteric.morpho │ ├── cube/ │ │ └── cube.morpho │ ├── delaunay/ │ │ └── delaunay.morpho │ ├── dla/ │ │ └── dla.morpho │ ├── electrostatics/ │ │ └── electrostatics.morpho │ ├── elementtypes/ │ │ ├── README.md │ │ ├── electrostaticsCG2.morpho │ │ └── qtensorCG2.morpho │ ├── examples.py │ ├── implicitmesh/ │ │ ├── ellipsoid.morpho │ │ ├── threesurface.morpho │ │ └── torus.morpho │ ├── meshgen/ │ │ ├── disk.morpho │ │ ├── ellipse.morpho │ │ ├── ellipsoidsection.morpho │ │ ├── halfdisk.morpho │ │ ├── overlappingdisks.morpho │ │ ├── sphere.morpho │ │ ├── square.morpho │ │ ├── superellipse.morpho │ │ ├── superellipsoid.morpho │ │ └── weighted.morpho │ ├── meshslice/ │ │ ├── sphere.mesh │ │ └── testmeshslice.morpho │ ├── plot/ │ │ ├── plotfield.morpho │ │ ├── plotmeshlabels.morpho │ │ ├── plotselection.morpho │ │ └── scalebar.morpho │ ├── povray/ │ │ ├── testCamera.morpho │ │ ├── testpovray.morpho │ │ ├── testpovraytext.morpho │ │ ├── testpovraytransmitfilter.morpho │ │ └── text.morpho │ ├── qtensor/ │ │ ├── dense_disk.mesh │ │ ├── qtensor.morpho │ │ ├── src.lyx │ │ └── src.tex │ ├── tactoid/ │ │ ├── disk.mesh │ │ ├── tactoid.morpho │ │ └── tactoid2dmesh.morpho │ ├── thomson/ │ │ └── thomson.morpho │ ├── tutorial/ │ │ ├── disk.mesh │ │ ├── tutorial.morpho │ │ └── tutorial2.morpho │ └── wrap/ │ └── wrap.morpho ├── help/ │ ├── Makefile │ ├── array.md │ ├── builtin.md │ ├── classes.md │ ├── color.md │ ├── complex.md │ ├── conf.py │ ├── constants.md │ ├── controlflow.md │ ├── delaunay.md │ ├── dictionary.md │ ├── errors.md │ ├── field.md │ ├── file.md │ ├── functionals.md │ ├── functions.md │ ├── graphics.md │ ├── help.md │ ├── implicitmesh.md │ ├── index.rst │ ├── json.md │ ├── kdtree.md │ ├── list.md │ ├── make.bat │ ├── matrix.md │ ├── mesh.md │ ├── meshgen.md │ ├── meshslice.md │ ├── meshtools.md │ ├── modules.md │ ├── optimize.md │ ├── plot.md │ ├── povray.md │ ├── range.md │ ├── requirements.txt │ ├── selection.md │ ├── sparse.md │ ├── string.md │ ├── syntax.md │ ├── system.md │ ├── tuple.md │ ├── values.md │ ├── variables.md │ └── vtk.md ├── modules/ │ ├── color.morpho │ ├── constants.morpho │ ├── delaunay.morpho │ ├── functionals.morpho │ ├── graphics.morpho │ ├── histogram.morpho │ ├── implicitmesh.morpho │ ├── kdtree.morpho │ ├── meshgen.morpho │ ├── meshslice.morpho │ ├── meshtools.morpho │ ├── optimize.morpho │ ├── parser.morpho │ ├── plot.morpho │ ├── povray.morpho │ ├── shapeopt.morpho │ ├── symmetry.morpho │ └── vtk.morpho ├── releasenotes/ │ ├── version-0.5.1.md │ ├── version-0.5.2.md │ ├── version-0.5.3.md │ ├── version-0.5.4.md │ ├── version-0.5.5.md │ ├── version-0.5.6.md │ ├── version-0.5.7.md │ ├── version-0.6.0.md │ ├── version-0.6.1.md │ ├── version-0.6.2.md │ └── version-0.6.3.md ├── src/ │ ├── CMakeLists.txt │ ├── build.h │ ├── builtin/ │ │ ├── CMakeLists.txt │ │ ├── builtin.c │ │ ├── builtin.h │ │ ├── functiondefs.c │ │ └── functiondefs.h │ ├── classes/ │ │ ├── CMakeLists.txt │ │ ├── array.c │ │ ├── array.h │ │ ├── bool.c │ │ ├── bool.h │ │ ├── classes.h │ │ ├── closure.c │ │ ├── closure.h │ │ ├── clss.c │ │ ├── clss.h │ │ ├── cmplx.c │ │ ├── cmplx.h │ │ ├── dict.c │ │ ├── dict.h │ │ ├── err.c │ │ ├── err.h │ │ ├── file.c │ │ ├── file.h │ │ ├── flt.c │ │ ├── flt.h │ │ ├── function.c │ │ ├── function.h │ │ ├── instance.c │ │ ├── instance.h │ │ ├── int.c │ │ ├── int.h │ │ ├── invocation.c │ │ ├── invocation.h │ │ ├── json.c │ │ ├── json.h │ │ ├── list.c │ │ ├── list.h │ │ ├── metafunction.c │ │ ├── metafunction.h │ │ ├── range.c │ │ ├── range.h │ │ ├── strng.c │ │ ├── strng.h │ │ ├── system.c │ │ ├── system.h │ │ ├── tuple.c │ │ ├── tuple.h │ │ ├── upvalue.c │ │ └── upvalue.h │ ├── core/ │ │ ├── CMakeLists.txt │ │ ├── compile.c │ │ ├── compile.h │ │ ├── core.h │ │ ├── gc.c │ │ ├── gc.h │ │ ├── opcodes.h │ │ ├── vm.c │ │ └── vm.h │ ├── datastructures/ │ │ ├── CMakeLists.txt │ │ ├── debugannotation.c │ │ ├── debugannotation.h │ │ ├── dictionary.c │ │ ├── dictionary.h │ │ ├── error.c │ │ ├── error.h │ │ ├── object.c │ │ ├── object.h │ │ ├── program.c │ │ ├── program.h │ │ ├── signature.c │ │ ├── signature.h │ │ ├── syntaxtree.c │ │ ├── syntaxtree.h │ │ ├── value.c │ │ ├── value.h │ │ ├── varray.c │ │ ├── varray.h │ │ ├── version.c │ │ └── version.h │ ├── debug/ │ │ ├── CMakeLists.txt │ │ ├── debug.c │ │ ├── debug.h │ │ ├── profile.c │ │ └── profile.h │ ├── geometry/ │ │ ├── CMakeLists.txt │ │ ├── fespace.c │ │ ├── fespace.h │ │ ├── field.c │ │ ├── field.h │ │ ├── functional.c │ │ ├── functional.h │ │ ├── geometry.c │ │ ├── geometry.h │ │ ├── integrate.c │ │ ├── integrate.h │ │ ├── mesh.c │ │ ├── mesh.h │ │ ├── selection.c │ │ └── selection.h │ ├── linalg/ │ │ ├── CMakeLists.txt │ │ ├── matrix.c │ │ ├── matrix.h │ │ ├── sparse.c │ │ └── sparse.h │ ├── morpho.h │ └── support/ │ ├── CMakeLists.txt │ ├── common.c │ ├── common.h │ ├── extensions.c │ ├── extensions.h │ ├── format.c │ ├── format.h │ ├── lex.c │ ├── lex.h │ ├── memory.c │ ├── memory.h │ ├── parse.c │ ├── parse.h │ ├── platform.c │ ├── platform.h │ ├── random.c │ ├── random.h │ ├── resources.c │ ├── resources.h │ ├── threadpool.c │ └── threadpool.h └── test/ ├── apply/ │ ├── apply.morpho │ ├── apply_args.morpho │ ├── apply_builtin.morpho │ ├── apply_closure.morpho │ ├── apply_list.morpho │ ├── apply_method.morpho │ └── apply_recursion.morpho ├── arithmetic/ │ ├── power.morpho │ ├── redirection.morpho │ └── unary_div.morpho ├── array/ │ ├── array.morpho │ ├── array_assign_beyond_bounds.morpho │ ├── array_dim_with_initializer.morpho │ ├── array_enumerate.morpho │ ├── array_garbage_collect.morpho │ ├── array_incompatible_initializer.morpho │ ├── array_initialize_array.morpho │ ├── array_initialize_incompatible_list.morpho │ ├── array_initialize_list.morpho │ ├── array_nonnum_indices.morpho │ ├── array_print.morpho │ ├── array_read_beyond_bounds.morpho │ ├── array_three_dim.morpho │ ├── array_two_dim.morpho │ ├── array_veneer.morpho │ ├── array_wrong_dim.morpho │ ├── constructor.morpho │ └── inherited.morpho ├── assignment/ │ ├── associativity.morpho │ ├── global.morpho │ ├── grouping.morpho │ ├── infix_operator.morpho │ ├── local.morpho │ ├── prefix_operator.morpho │ ├── shorthand.morpho │ ├── syntax.morpho │ ├── to_self.morpho │ └── undefined.morpho ├── blank/ │ ├── empty_file.morpho │ └── shebang.morpho ├── block/ │ ├── empty.morpho │ ├── scope.morpho │ └── scope_error.morpho ├── bool/ │ ├── builtin.morpho │ ├── equality.morpho │ └── not.morpho ├── break/ │ ├── break_in_if_outside_loop.morpho │ ├── break_outside_loop.morpho │ ├── continue_in_if_outside_loop.morpho │ ├── continue_outside_loop.morpho │ ├── in_for.morpho │ ├── in_forin.morpho │ └── in_while.morpho ├── builtin/ │ ├── apply.morpho │ ├── bounds.morpho │ ├── boundsvargs.morpho │ ├── iscallable.morpho │ ├── maxargs.morpho │ ├── minargs.morpho │ ├── minnumbers.morpho │ ├── minvargs.morpho │ ├── mod.morpho │ └── typecheck.morpho ├── call/ │ ├── bool.morpho │ ├── call.morpho │ ├── nil.morpho │ ├── num.morpho │ ├── object.morpho │ └── string.morpho ├── class/ │ ├── apply_class.morpho │ ├── call_class_in_property.morpho │ ├── call_on_class.morpho │ ├── empty.morpho │ ├── forward_ref_in_method.morpho │ ├── inherit_self.morpho │ ├── inherited_method.morpho │ ├── is.morpho │ ├── keyword_method.morpho │ ├── keyword_property.morpho │ ├── linearization.morpho │ ├── local_fn_supersedes_method_call.morpho │ ├── local_inherit_other.morpho │ ├── local_inherit_self.morpho │ ├── local_reference_self.morpho │ ├── method_call_supersedes_global_fn.morpho │ ├── mixins.morpho │ ├── nested_class.morpho │ ├── no_self_for_method_call.morpho │ ├── prefer_local.morpho │ ├── reference_self.morpho │ ├── syntax_error_in_constructor.morpho │ └── unlinearizable.morpho ├── closure/ │ ├── assign_to_closure.morpho │ ├── assign_to_shadowed_later.morpho │ ├── close_over_function_parameter.morpho │ ├── close_over_later_variable.morpho │ ├── closed_closure_in_function.morpho │ ├── closures_in_loop.morpho │ ├── nested_closure.morpho │ ├── open_closure_in_function.morpho │ ├── prioritize_upvalues_over_globals.morpho │ ├── reference_closure_multiple_times.morpho │ ├── reuse_closure_slot.morpho │ ├── shadow_closure_with_local.morpho │ ├── unused_closure.morpho │ ├── unused_later_closure.morpho │ └── veneer.morpho ├── comments/ │ ├── line_at_eof.morpho │ ├── multline.morpho │ ├── nested.morpho │ ├── only_line_comment.morpho │ ├── only_line_comment_and_line.morpho │ ├── unicode.morpho │ └── unterminated.morpho ├── complex/ │ ├── ComplexBuiltin.morpho │ ├── ComplexTrig.morpho │ ├── arithmetic.morpho │ ├── clone.morpho │ ├── complex_overflow_literal.morpho │ ├── constructor.morpho │ ├── constructor_error.morpho │ ├── inherited.morpho │ ├── methods.morpho │ └── powers.morpho ├── constructor/ │ ├── arguments.morpho │ ├── call_init_early_return.morpho │ ├── call_init_explicitly.morpho │ ├── default.morpho │ ├── default_arguments.morpho │ ├── early_return.morpho │ ├── extra_arguments.morpho │ ├── init_not_method.morpho │ ├── missing_arguments.morpho │ ├── return_in_nested_function.morpho │ └── return_value.morpho ├── dictionary/ │ ├── clear.morpho │ ├── contains.morpho │ ├── empty_literal.morpho │ ├── inherited.morpho │ ├── key_not_found.morpho │ ├── literal_from_vars.morpho │ ├── literal_in_function.morpho │ ├── literal_in_loop.morpho │ ├── methods.morpho │ ├── missing_comma.morpho │ ├── missing_separator.morpho │ ├── remove.morpho │ ├── set_operations.morpho │ ├── syntax.morpho │ ├── tombstone.morpho │ └── unterminated.morpho ├── do/ │ ├── do_in_fn.morpho │ ├── do_with_break.morpho │ ├── missingcond.morpho │ └── syntax.morpho ├── error/ │ ├── error_incorrectly_defined.morpho │ ├── inherited.morpho │ ├── stacktrace.morpho │ ├── throw.morpho │ ├── throw_on_class.morpho │ └── throw_on_class_notag.morpho ├── field/ │ ├── assign.morpho │ ├── assign_matrix.morpho │ ├── badfnin.morpho │ ├── bounds.morpho │ ├── discretizations/ │ │ ├── boundary_line_integrals.morpho │ │ ├── cg1_area_in_2d_grad.morpho │ │ ├── cg1_area_in_2d_grad_old.morpho │ │ ├── cg1_area_in_2d_old.morpho │ │ ├── cg1_line_in_3d_grad.morpho │ │ ├── cg2_area_in_2d.morpho │ │ ├── cg2_area_in_2d_grad.morpho │ │ ├── cg2_area_in_2d_tensor_grad.morpho │ │ ├── cg2_area_in_3d_grad.morpho │ │ ├── cg2_line_in_1d.morpho │ │ ├── cg2_line_in_2d_grad.morpho │ │ ├── cg2_line_in_3d_integrate.morpho │ │ ├── cg2_vol_in_3d.morpho │ │ └── cg2_vol_in_3d_grad.morpho │ ├── enumerate.morpho │ ├── grade.morpho │ ├── inherited.morpho │ ├── inner.morpho │ ├── linearize.morpho │ ├── matrix.morpho │ ├── methods.morpho │ ├── multigrade.morpho │ ├── neg_nilMesh.morpho │ ├── negate.morpho │ ├── op.morpho │ ├── op_in_loop.morpho │ ├── scalar.morpho │ ├── scalarmul.morpho │ └── square.mesh ├── file/ │ ├── file.morpho │ ├── file_lines.morpho │ ├── file_not_found.morpho │ ├── file_readall.morpho │ ├── file_write.morpho │ ├── filename_missing.morpho │ ├── filename_not_string.morpho │ ├── folder/ │ │ ├── file1.txt │ │ ├── file2.txt │ │ └── file3.txt │ ├── folder.morpho │ ├── remote.morpho │ ├── string.txt │ ├── test.txt │ └── testout.txt ├── for/ │ ├── class_in_body.morpho │ ├── closure_in_body.morpho │ ├── fn_in_body.morpho │ ├── return_closure.morpho │ ├── return_inside.morpho │ ├── scope.morpho │ ├── statement_condition.morpho │ ├── statement_increment.morpho │ ├── statement_initializer.morpho │ ├── syntax.morpho │ └── var_in_body.morpho ├── for_in/ │ ├── forin.morpho │ ├── forin_custom.morpho │ ├── forin_in_function.morpho │ ├── forin_index.morpho │ └── forin_string.morpho ├── function/ │ ├── anonymous.morpho │ ├── anonymous_closure.morpho │ ├── anonymous_closure_assign.morpho │ ├── anonymous_closure_noparams.morpho │ ├── anonymous_in_args.morpho │ ├── anonymous_in_optional_args.morpho │ ├── body_must_be_block.morpho │ ├── constant_arg_optional.morpho │ ├── empty_body.morpho │ ├── extra_arguments.morpho │ ├── index_in_arguments.morpho │ ├── local_recursion.morpho │ ├── missing_arguments.morpho │ ├── missing_comma_in_parameters.morpho │ ├── mutual_recursion/ │ │ ├── duplicate_local_mutual_recursion.morpho │ │ ├── local_mutual_recursion.morpho │ │ ├── local_mutual_recursion_out_of_scope.morpho │ │ ├── mutual_recursion.morpho │ │ ├── mutual_recursion_in_closure.morpho │ │ ├── undefined_call_in_global.morpho │ │ ├── unresolved_forward_ref_in_func.morpho │ │ └── unresolved_forward_reference.morpho │ ├── optional.morpho │ ├── optional_invalid.morpho │ ├── optional_non_constant_default.morpho │ ├── optional_too_few_fixed.morpho │ ├── parameters.morpho │ ├── print.morpho │ ├── recursion.morpho │ ├── stack_overflow.morpho │ ├── too_many_arguments.morpho │ ├── too_many_parameters.morpho │ ├── unknown_optional.morpho │ ├── variadic.morpho │ ├── variadic_append.morpho │ ├── variadic_apply.morpho │ ├── variadic_in_method.morpho │ ├── variadic_last.morpho │ ├── variadic_only.morpho │ ├── variadic_optional.morpho │ ├── variadic_too_many.morpho │ └── veneer.morpho ├── functionals/ │ ├── area/ │ │ ├── area.morpho │ │ ├── area2.morpho │ │ ├── area2d.morpho │ │ ├── area_hessian.morpho │ │ ├── area_integrandForElement.morpho │ │ ├── square.mesh │ │ └── triangle.mesh │ ├── areaenclosed/ │ │ ├── areaenclosed.morpho │ │ ├── areaenclosed_hessian.morpho │ │ └── areaenclosed_integrandForElement.morpho │ ├── areaintegral/ │ │ ├── areaintegral.morpho │ │ ├── cg2fieldgradient.morpho │ │ ├── cgtensor.morpho │ │ ├── grad.morpho │ │ ├── grad2.morpho │ │ ├── gradvector.morpho │ │ └── normal.morpho │ ├── cube.mesh │ ├── cubeout.mesh │ ├── equielement/ │ │ ├── equielement.morpho │ │ ├── equielement_gradient.morpho │ │ ├── equielement_hessian.morpho │ │ ├── hex.mesh │ │ └── weight.morpho │ ├── err_functional_req_mesh.morpho │ ├── err_integrand.morpho │ ├── gausscurvature/ │ │ ├── disk.mesh │ │ ├── gausscurvature.morpho │ │ ├── geodesiccurvature.morpho │ │ ├── gradient.morpho │ │ ├── symm.morpho │ │ └── torus.morpho │ ├── gradsq/ │ │ ├── disk.mesh │ │ ├── gradsq.morpho │ │ ├── gradsq1d.morpho │ │ ├── gradsq3d.morpho │ │ ├── integral.morpho │ │ ├── tetrahedron.mesh │ │ └── triangle.mesh │ ├── hydrogel/ │ │ ├── hydrogel.morpho │ │ ├── hydrogel1D.morpho │ │ ├── hydrogel1D_2elements.morpho │ │ ├── hydrogel2D.morpho │ │ ├── hydrogel2D_2elements.morpho │ │ ├── hydrogel3D_2elements.morpho │ │ ├── hydrogel_field_lacks_grade.morpho │ │ └── tetrahedron.mesh │ ├── length/ │ │ ├── length.morpho │ │ ├── length2d.morpho │ │ ├── length_hessian.morpho │ │ ├── length_integrandForElement.morpho │ │ └── line.mesh │ ├── linearelasticity/ │ │ ├── linearelasticity.morpho │ │ ├── relax.morpho │ │ ├── scalesquare.mesh │ │ ├── shearsquare.mesh │ │ ├── square.mesh │ │ └── stretchsquare.mesh │ ├── linecurvaturesq/ │ │ ├── gradient.morpho │ │ ├── gradient_symm.morpho │ │ ├── hessian.morpho │ │ ├── linecurvaturesq.morpho │ │ ├── linecurvaturesq.xmorpho │ │ ├── linecurvaturesq_integrandForElement.morpho │ │ ├── linecurvaturesq_symm.morpho │ │ ├── linecurvaturesq_symm.xmorpho │ │ └── symmetry.xmorpho │ ├── lineintegral/ │ │ ├── fields_incorrect_args.morpho │ │ ├── fields_insufficient_args.morpho │ │ ├── fields_toomany_args.morpho │ │ ├── lineintegral.morpho │ │ ├── lineintegral_fieldgradient.morpho │ │ ├── lineintegral_hessian.morpho │ │ ├── selection.morpho │ │ ├── tangent.morpho │ │ └── tangent2d.morpho │ ├── linetorsionsq/ │ │ ├── gradient.morpho │ │ ├── gradient_symm.morpho │ │ ├── hessian.morpho │ │ ├── linetorsionsq.morpho │ │ ├── linetorsionsq.xmorpho │ │ └── linetorsionsq_symm.morpho │ ├── meancurvaturesq/ │ │ ├── gradient.morpho │ │ ├── gradient_symm.morpho │ │ ├── meancurvaturesq.morpho │ │ └── symm.morpho │ ├── nematic/ │ │ ├── nematic.morpho │ │ ├── nematic3d.morpho │ │ ├── nematicdim.morpho │ │ ├── square.mesh │ │ └── tetrahedron.mesh │ ├── nematicelectric/ │ │ └── nematicelectric.morpho │ ├── normsq/ │ │ ├── normsq.morpho │ │ └── triangle.mesh │ ├── numericalderivatives.morpho │ ├── on_selection.morpho │ ├── relax.morpho │ ├── relax2.morpho │ ├── scalarpotential/ │ │ ├── scalarpotential.morpho │ │ ├── scalarpotential_hessian.morpho │ │ ├── scalarpotential_ndiff.morpho │ │ ├── scalarpotential_notcallable.morpho │ │ └── tetrahedron.mesh │ ├── square.mesh │ ├── triangle.mesh │ ├── volume/ │ │ ├── tetrahedron.mesh │ │ ├── volume.morpho │ │ └── volume_hessian.morpho │ ├── volumeenclosed/ │ │ ├── tetrahedron.mesh │ │ ├── volencl.morpho │ │ ├── volencl_hessian.morpho │ │ └── volencl_zeroelement.morpho │ └── volumeintegral/ │ ├── grad.morpho │ ├── testintegrals.morpho │ └── volume_integral.morpho ├── help.py ├── if/ │ ├── class_in_else.morpho │ ├── class_in_then.morpho │ ├── dangling_else.morpho │ ├── else.morpho │ ├── fn_in_else.morpho │ ├── fn_in_then.morpho │ ├── if.morpho │ ├── if_in_method.morpho │ ├── truth.morpho │ ├── var_in_else.morpho │ └── var_in_then.morpho ├── import/ │ ├── as.morpho │ ├── as_not_imported.morpho │ ├── file_not_found.morpho │ ├── for_clause.morpho │ ├── for_clause_restrict.morpho │ ├── for_string_after_for.morpho │ ├── import_class_extends.morpho │ ├── import_file.morpho │ ├── import_for_class.morpho │ ├── import_module.morpho │ ├── import_underscore.morpho │ ├── importtest.m │ ├── module_not_found.morpho │ ├── multiple.morpho │ ├── multiple_as.morpho │ ├── nested_import_in_module.morpho │ ├── nestedimporttest.m │ ├── nestedimporttest2.m │ ├── one_for_per_line.morpho │ ├── optional.morpho │ ├── optional_in_module.morpho │ └── underscoreimporttest.m ├── inheritance/ │ ├── constructor.morpho │ ├── inherit_from_function.morpho │ ├── inherit_from_nil.morpho │ ├── inherit_from_number.morpho │ ├── inherit_methods.morpho │ ├── parenthesized_superclass.morpho │ └── set_fields_from_base_class.morpho ├── integrate/ │ ├── counter.morpho │ ├── embedding.morpho │ ├── integrals1d.morpho │ ├── integrals2d.morpho │ ├── integrals2d_quantities.morpho │ ├── integrals3d.morpho │ ├── method_entry_type.morpho │ ├── method_not_a_dict.morpho │ ├── method_rule_not_found.morpho │ ├── method_rule_unavlb.morpho │ └── too_many_subdivisions.morpho ├── invocation/ │ ├── invocation.morpho │ └── invocation_on_class.morpho ├── json/ │ ├── json.morpho │ ├── testjson.morpho │ └── tostring.morpho ├── junk/ │ ├── ctrl.morpho │ ├── makectrl.xmorpho │ └── oeq0.morpho ├── list/ │ ├── empty_index.morpho │ ├── index_out_of_bounds.morpho │ ├── inherited.morpho │ ├── initializer_with_enumerable.morpho │ ├── initializer_with_vars.morpho │ ├── insert.morpho │ ├── ismember.morpho │ ├── join.morpho │ ├── list_from_tuple.morpho │ ├── nonint_index.mopho │ ├── order.morpho │ ├── pop_bounds.morpho │ ├── pop_index.morpho │ ├── pop_negative.morpho │ ├── remove.morpho │ ├── reverse.morpho │ ├── roll.morpho │ ├── sort_with_function.morpho │ ├── sort_with_function_flt.morpho │ ├── syntax.morpho │ └── tuples.morpho ├── logical/ │ ├── and.morpho │ ├── and_truth.morpho │ ├── or.morpho │ └── or_truth.morpho ├── math/ │ ├── isinf_isnan_isfinite.morpho │ ├── math.morpho │ └── sign.morpho ├── matrix/ │ ├── Lnorm.morpho │ ├── arith_scalar.morpho │ ├── arithmetic.morpho │ ├── assign.morpho │ ├── blockmatrix_constructor.morpho │ ├── concatenate.morpho │ ├── concatenate_sparse.morpho │ ├── dimensions.morpho │ ├── eigensystem.morpho │ ├── eigenvalues.morpho │ ├── format.morpho │ ├── get_column.morpho │ ├── identity.morpho │ ├── incompatible_add.morpho │ ├── incompatible_mul.morpho │ ├── incompatible_sub.morpho │ ├── inherited.morpho │ ├── initializer.morpho │ ├── inverse.morpho │ ├── linearsolve.morpho │ ├── linearsolve3x3.morpho │ ├── negate.morpho │ ├── nonnum_indices.morpho │ ├── nonnum_initializer.morpho │ ├── norm.morpho │ ├── outer.morpho │ ├── reshape.morpho │ ├── roll.morpho │ ├── scalar_mul.morpho │ ├── set_column.morpho │ ├── trace.morpho │ └── transpose.morpho ├── mesh/ │ ├── addgradeerror.morpho │ ├── addgradetwo.morpho │ ├── addgradezero.morpho │ ├── clone.morpho │ ├── connectivity.morpho │ ├── connectivity_tetrahedron.morpho │ ├── err_empty_mesh_set_element.morpho │ ├── err_mesh_con_args.morpho │ ├── inherited.morpho │ ├── load.morpho │ ├── load_missing_coord.morpho │ ├── load_spurious_vertex_ref.morpho │ ├── maxgrade.morpho │ ├── merge.morpho │ ├── out.mesh │ ├── removegrade.morpho │ ├── resetconnectivity.morpho │ ├── save.morpho │ ├── sphere.mesh │ ├── square.mesh │ ├── square_missingcoord.mesh │ ├── square_spurious_vertex_ref.mesh │ ├── tetrahedron.mesh │ ├── tetrahedron2.mesh │ └── vertexposition.morpho ├── method/ │ ├── arity.morpho │ ├── empty_block.morpho │ ├── extra_arguments.morpho │ ├── missing_arguments.morpho │ ├── not_found.morpho │ ├── optional.morpho │ ├── optional_indirect.morpho │ ├── print_bound_method.morpho │ ├── return_in_method.morpho │ ├── too_many_arguments.morpho │ └── too_many_parameters.morpho ├── modules/ │ ├── constants.morpho │ ├── delaunay/ │ │ └── delaunay.morpho │ ├── meshgen/ │ │ └── disk.morpho │ ├── meshslice/ │ │ ├── slice.morpho │ │ ├── slice_delaunay.morpho │ │ ├── slice_empty.morpho │ │ └── tetrahedron.mesh │ ├── meshtools/ │ │ ├── dimension_inconsistent.morpho │ │ ├── dimension_unknown.morpho │ │ ├── merge_duplicates.morpho │ │ ├── mesh_still_too_large.morpho │ │ ├── mesh_too_large.morpho │ │ ├── meshrefine.morpho │ │ ├── polyhedron.morpho │ │ ├── testprune.morpho │ │ ├── testrefine3d.morpho │ │ ├── testrefineselection.morpho │ │ ├── tetrahedron.mesh │ │ ├── tetrahedron.morpho │ │ ├── tetrahedron2.mesh │ │ ├── triangle.mesh │ │ └── triangle.morpho │ ├── optimize/ │ │ └── cg.morpho │ └── povray.morpho ├── namespace/ │ ├── function.xmorpho │ ├── namespace_class.morpho │ ├── namespace_class_extends.morpho │ ├── namespace_class_restrict.morpho │ └── namespace_functioncall.morpho ├── newline/ │ ├── block.morpho │ ├── classes.morpho │ ├── for.morpho │ ├── functions.morpho │ └── variables.morpho ├── nil/ │ └── literal.morpho ├── number/ │ ├── decimal_point_at_eof.morpho │ ├── float_negative_overflow.morpho │ ├── float_overflow.morpho │ ├── integer_overflow.morpho │ ├── leading_dot.morpho │ ├── literals.morpho │ ├── nan_equality.morpho │ └── trailing_dot.morpho ├── object/ │ ├── baseclass.morpho │ ├── builtin_inheritance.morpho │ ├── class_responds_to.morpho │ ├── clone.morpho │ ├── enumerate.morpho │ ├── has.morpho │ ├── index.morpho │ ├── invoke.morpho │ ├── non_string_index.morpho │ └── responds_to.morpho ├── operator/ │ ├── add.morpho │ ├── add_bool_nil.morpho │ ├── add_bool_num.morpho │ ├── add_bool_string.morpho │ ├── add_nil_nil.morpho │ ├── add_num_nil.morpho │ ├── add_string_nil.morpho │ ├── comparison.morpho │ ├── divide.morpho │ ├── divide_nonnum_num.morpho │ ├── divide_num_nonnum.morpho │ ├── equals.morpho │ ├── equals_class.morpho │ ├── equals_method.morpho │ ├── fpcompare.morpho │ ├── greater_nonnum_num.morpho │ ├── greater_num_nonnum.morpho │ ├── greater_or_equal_nonnum_num.morpho │ ├── greater_or_equal_num_nonnum.morpho │ ├── less_nonnum_num.morpho │ ├── less_num_nonnum.morpho │ ├── less_or_equal_nonnum_num.morpho │ ├── less_or_equal_num_nonnum.morpho │ ├── more_comparison.morpho │ ├── multiply.morpho │ ├── multiply_nonnum_num.morpho │ ├── multiply_num_nonnum.morpho │ ├── negate.morpho │ ├── negate_nonnum.morpho │ ├── not.morpho │ ├── not_class.morpho │ ├── not_equals.morpho │ ├── subtract.morpho │ ├── subtract_nonnum_num.morpho │ ├── subtract_num_nonnum.morpho │ ├── ternary.morpho │ ├── ternary_in_function.morpho │ ├── ternary_in_loop.morpho │ ├── ternary_missing_colon.morpho │ └── ternary_nested.morpho ├── print/ │ └── missing_argument.morpho ├── programs/ │ ├── delta_blue.morpho │ ├── fannkuch.morpho │ ├── fibonacci.morpho │ ├── histogram.morpho │ └── integrate.morpho ├── property/ │ ├── call_function_field.morpho │ ├── call_nonfunction_field.morpho │ ├── get_on_bool.morpho │ ├── get_on_class.morpho │ ├── get_on_function.morpho │ ├── get_on_nil.morpho │ ├── get_on_num.morpho │ ├── get_on_string.morpho │ ├── index_property_in_args.morpho │ ├── many.morpho │ ├── method.morpho │ ├── method_binds_self.morpho │ ├── on_instance.morpho │ ├── property_error_in_index.morpho │ ├── property_index.morpho │ ├── set_evaluation_order.morpho │ ├── set_index_property.morpho │ ├── set_on_bool.morpho │ ├── set_on_class.morpho │ ├── set_on_function.morpho │ ├── set_on_nil.morpho │ ├── set_on_num.morpho │ ├── set_on_string.morpho │ └── undefined.morpho ├── range/ │ ├── constructor.morpho │ ├── count_down.morpho │ ├── exclusive.morpho │ ├── inclusive.morpho │ ├── inherited.morpho │ ├── invalid_constructor_too_few_args.morpho │ ├── invalid_constructor_too_many_args.morpho │ ├── invalid_constructor_type.morpho │ ├── list_constructor.morpho │ ├── step_too_fine.morpho │ └── syntax.morpho ├── return/ │ ├── after_else.morpho │ ├── after_if.morpho │ ├── after_while.morpho │ ├── at_top_level.morpho │ ├── in_for_in.morpho │ ├── in_function.morpho │ ├── in_method.morpho │ └── return_nil_if_no_value.morpho ├── selection/ │ ├── add_grade.morpho │ ├── boundary.morpho │ ├── circlesquare.mesh │ ├── clone.morpho │ ├── count.morpho │ ├── get_index.morpho │ ├── inherited.morpho │ ├── no_mesh_error.morpho │ ├── selection.morpho │ ├── selection_withmatrix.morpho │ ├── set_index.morpho │ ├── set_operations.morpho │ └── square.mesh ├── self/ │ ├── closure.morpho │ ├── nested_class.morpho │ ├── nested_closure.morpho │ ├── self_at_top_level.morpho │ ├── self_in_method.morpho │ ├── self_in_top_level_function.morpho │ └── self_set_prop_index.morpho ├── slice/ │ ├── arraySlicing.morpho │ ├── listSlicing.morpho │ └── matrixSlicing.morpho ├── sparse/ │ ├── arithmetic.morpho │ ├── block_constructor_dimensions.morpho │ ├── clone.morpho │ ├── col_indices.morpho │ ├── column.morpho │ ├── concatenate.morpho │ ├── dense_sparse_mul.morpho │ ├── dimensions.morpho │ ├── edit_sparse.morpho │ ├── empty_initializer.morpho │ ├── enumerate.morpho │ ├── incompatible_add.morpho │ ├── incompatible_mul.morpho │ ├── indices.morpho │ ├── inherited.morpho │ ├── initializer.morpho │ ├── invld_initializer.morpho │ ├── linearsolve.morpho │ ├── nonnum.morpho │ ├── row_indices.morpho │ ├── scalar_mul.morpho │ ├── set_row_indices.morpho │ ├── sparse_dense_mul.morpho │ ├── sparse_dense_mul_dimensions.morpho │ ├── sparse_empty.morpho │ ├── sparse_empty_list.morpho │ ├── todensematrix.morpho │ └── transpose.morpho ├── string/ │ ├── ctrl_in_string.morpho │ ├── empty_interpolation.morpho │ ├── error_after_multiline.morpho │ ├── escape.morpho │ ├── escchar.morpho │ ├── index.morpho │ ├── inherited.morpho │ ├── interpolation.morpho │ ├── interpolation_keyword.morpho │ ├── interpolation_propertyindex.morpho │ ├── interpolation_syntaxerror.morpho │ ├── interpolation_types.morpho │ ├── invalid_unicode.morpho │ ├── literals.morpho │ ├── multiline.morpho │ ├── split.morpho │ ├── split_gc.morpho │ ├── string_veneer.morpho │ ├── tonumber.morpho │ ├── unicode.morpho │ ├── unterminated.morpho │ └── utf8.morpho ├── super/ │ ├── bound_method.morpho │ ├── call_other_method.morpho │ ├── call_same_method.morpho │ ├── closure.morpho │ ├── constructor.morpho │ ├── extra_arguments.morpho │ ├── indirectly_inherited.morpho │ ├── missing_arguments.morpho │ ├── no_superclass_bind.morpho │ ├── no_superclass_call.morpho │ ├── no_superclass_method.morpho │ ├── parenthesized.morpho │ ├── reassign_superclass.morpho │ ├── self_in_superclass_method.morpho │ ├── super_at_top_level.morpho │ ├── super_in_closure_in_inherited_method.morpho │ ├── super_in_inherited_method.morpho │ ├── super_in_top_level_function.morpho │ ├── super_without_dot.morpho │ └── super_without_name.morpho ├── syntax/ │ ├── comments.morpho │ ├── empty_file.morpho │ ├── illegal_chars_in_symbol.morpho │ └── symbols.morpho ├── system/ │ ├── args.morpho │ ├── args.xmorpho │ └── system.morpho ├── test.py ├── try/ │ ├── break_in_catch.morpho │ ├── continue_in_catch.morpho │ ├── err_stack_overflw.morpho │ ├── return_in_try.morpho │ ├── try.morpho │ ├── try_builtin_err.morpho │ ├── try_empty_block.morpho │ ├── try_empty_catch.morpho │ ├── try_empty_label.morpho │ ├── try_err_in_function.morpho │ ├── try_in_function.morpho │ ├── try_in_loop.morpho │ ├── try_in_method.morpho │ ├── try_missing_catch.morpho │ ├── try_missing_catch_block.morpho │ ├── try_nested.morpho │ ├── try_recurse.morpho │ ├── try_reentrancy.morpho │ ├── try_reentrancy_uncaught.morpho │ └── try_var_in_catch.morpho ├── tuple/ │ ├── nested_tuple.morpho │ ├── single_nested_tuple.morpho │ ├── tuple.morpho │ ├── tuple_anonymousfn.morpho │ ├── tuple_apply.morpho │ ├── tuple_compare.morpho │ ├── tuple_enumerate.morpho │ ├── tuple_getindex.morpho │ ├── tuple_in_dictionary.morpho │ ├── tuple_index_out_of_bounds.morpho │ ├── tuple_ismember.morpho │ ├── tuple_join.morpho │ ├── tuple_slice.morpho │ └── tuple_syntax.morpho ├── type/ │ ├── iscallable.morpho │ └── typecheck.morpho ├── types/ │ ├── builtin_class_signature.morpho │ ├── function_signature.morpho │ ├── multiple_dispatch/ │ │ ├── apply.morpho │ │ ├── apply_invocation_multiple_dispatch.morpho │ │ ├── check_args.morpho │ │ ├── class_multiple_dispatch.morpho │ │ ├── class_multiple_dispatch_args.morpho │ │ ├── class_multiple_dispatch_post.morpho │ │ ├── class_multiple_initializer.morpho │ │ ├── class_visitor.morpho │ │ ├── closure.morpho │ │ ├── deep_nested_closure.morpho │ │ ├── duplicate.morpho │ │ ├── duplicate_no_arg.morpho │ │ ├── duplicate_no_type.morpho │ │ ├── duplicate_no_type_two.morpho │ │ ├── duplicate_no_type_two_arguments.morpho │ │ ├── duplicate_one_arg.morpho │ │ ├── duplicate_scope.morpho │ │ ├── free.morpho │ │ ├── import.morpho │ │ ├── import_for.morpho │ │ ├── in_function.morpho │ │ ├── inheritance.morpho │ │ ├── inheritance_single.morpho │ │ ├── instance.morpho │ │ ├── invocation_multiple_dispatch.morpho │ │ ├── multi_nested_closure.morpho │ │ ├── multiple_dispatch.morpho │ │ ├── namespace.morpho │ │ ├── namespace.xmorpho │ │ ├── namespace_for.morpho │ │ ├── namespace_for_new.morpho │ │ ├── namespace_for_overwrite.morpho │ │ ├── nested_closure.morpho │ │ ├── nparams.morpho │ │ ├── nparams_varg.morpho │ │ ├── object_overflow.morpho │ │ ├── optional.morpho │ │ ├── optional_invld.morpho │ │ ├── pets.morpho │ │ ├── pets.zmorpho │ │ ├── pets_subclass.morpho │ │ ├── recursion.morpho │ │ ├── scope.morpho │ │ ├── two.morpho │ │ ├── value.morpho │ │ ├── varg.morpho │ │ └── varg_as_backup.morpho │ ├── type_from_namespace.morpho │ ├── type_in_function.morpho │ ├── type_in_function_fake_namespace.morpho │ ├── type_in_function_namespace.morpho │ ├── type_in_function_namespace_not_found.morpho │ ├── type_in_global.morpho │ ├── type_inheritance.morpho │ ├── type_instance.morpho │ ├── type_namespace.xmorpho │ ├── type_violation_constant.morpho │ ├── type_violation_dictionary.morpho │ ├── type_violation_global.morpho │ ├── type_violation_in_function.morpho │ ├── type_violation_inheritance.morpho │ ├── type_violation_instance.morpho │ ├── type_violation_matrix.morpho │ ├── type_violation_propagation.morpho │ └── type_violation_range.morpho ├── valgrind.py ├── variable/ │ ├── duplicate_local.morpho │ ├── duplicate_parameter.morpho │ ├── early_bound.morpho │ ├── in_middle_of_block.morpho │ ├── in_nested_block.morpho │ ├── local_from_method.morpho │ ├── multiple.morpho │ ├── redeclare_global.morpho │ ├── redefine_global.morpho │ ├── scope_reuse_in_different_blocks.morpho │ ├── shadow_and_local.morpho │ ├── shadow_global.morpho │ ├── shadow_local.morpho │ ├── undefined_global.morpho │ ├── undefined_local.morpho │ ├── uninitialized.morpho │ ├── unreached_undefined.morpho │ ├── use_false_as_var.morpho │ ├── use_global_in_initializer.morpho │ ├── use_nil_as_var.morpho │ ├── use_self_as_var.morpho │ └── var_dictionary_as_label.morpho ├── veneer/ │ ├── bool.morpho │ ├── float.morpho │ ├── format_args.morpho │ ├── format_invld_args.morpho │ ├── int.morpho │ └── invocation.morpho ├── vtk/ │ ├── ensurevtkfilename.morpho │ ├── export_and_import_mesh.morpho │ ├── export_and_import_no_fieldname.morpho │ ├── export_and_import_scalar.morpho │ ├── export_and_import_scalar_and_vector.morpho │ ├── export_and_import_vector.morpho │ ├── export_and_import_vector_2d.morpho │ ├── export_import_2d.morpho │ ├── export_import_3d.morpho │ ├── export_incorrect_field_4d_vector.morpho │ ├── export_incorrect_field_grade1.morpho │ ├── export_incorrect_field_grade2.morpho │ ├── export_incorrect_field_tensor.morpho │ ├── import_external_vtk.morpho │ ├── import_mesh.morpho │ ├── import_scalar.morpho │ ├── import_scalar_vector.morpho │ ├── import_vector.morpho │ ├── importer_containsfield.morpho │ ├── importer_fieldlist.morpho │ ├── importer_incorrect_fieldname.morpho │ ├── mesh.vtk │ ├── mesh_scalar.vtk │ ├── mesh_scalar_vector.vtk │ ├── mesh_vector.vtk │ ├── rbc_001.vtk │ ├── square.mesh │ ├── tetrahedron.mesh │ ├── vtk_exporter_addfield_fname_not_str_err.morpho │ ├── vtk_exporter_fname_not_str_err.morpho │ ├── vtk_exporter_init_err.morpho │ └── vtk_exporter_invalid_fname_err.morpho ├── wc └── while/ ├── class_in_body.morpho ├── closure_in_body.morpho ├── fn_in_body.morpho ├── if_in_body.morpho ├── return_closure.morpho ├── return_inside.morpho ├── syntax.morpho └── var_in_body.morpho