// Declarations only version of Cm (like mojo/protobuf? not sure) // assume special receiver (as opposed to smalltalk/objC style message passing) // -- actually, on second thought, this has nothing to do with dispatching (and smalltalk is single dispatch) // -- (no touching multiple dispatch since that's equivalent to reinventing a new language) // overloading discouraged, because runtime has to do extra work dispatching // declare functions outside, with `this` keyword marking receiver // - in C, func -> prefixed with reciever type, 1st arg is reciever pointer // - in C++, func -> member function // - lua (or whatever else), reciever type correspondingly Foo { data } // C: mangling // C++: overloading // Lua: generate binding with type detection based dispatcher fn some_function(this: Foo, arg: i32) fn some_function(this: Foo) // alternative: use S-expression, get rid of parsing step?