Thank you **@moigagoo** for your feedback! > 1\. In 8.1.3 Type compatibility, you point out that we can't use int and > string and should use cint and cstring instead. But instead of explaining the > differences, you state that cstring is actually similar to string (to the > point where string is implicitly converted to cstring) and cint is basically > int32. If the types are in fact so similar, why can't we use them?
You're right, I will explain the differences more clearly. > [...] But when I'm trying to actually capture the return value and print it, > an error occurs [...] I wanted to keep the first example as simple as possible. But I will fix this by adding a `nodecl` pragma to it. > 3\. Usage of {.importc.} for JavaScript interfacing is confusing. Why are we > using the C pragma for JS? Why should every field be explicitly imported? > > 4\. Even more confusing is the usage of {.importcpp.}: “It instructs the > compiler to generate JavaScript code which calls the specified procedure as > if it was a member of the first argument’s object.” There's no obvious logic > in using C++ pragma in JS interfacing, let alone using it to achieve this > effect. I think **@Araq** will need to answer these questions.