Currently I improve the proceduer `computeSize` in `types.nim`. I worked now quite a bit on the procedure, but I don't understand, how `system.sizeof` eventually calls `types.computeSize`. I know that in some cases the call system.sizeof was not able to be evaluated at compile time. I would like to know how this decision is made.
Eventually I would like to add `system.alignof` analogue to `system.sizeof`. Then I would like to add offsetof, but here I do not know how the interface should look like. This is an idea: proc offsetof[T](typ: typedesc[T]; member: untyped): int For my use case it is very important, that I can get all the sizes at compile time, therefore I would like to make all this also available with NimNode arguments: # macros.nim proc sizeof(typ: NimNode) proc alignof(typ: NimNode) proc offsetof(member: NimNode) But here again, I don't understand how I can bind these procedures to the functions I defined in `types.nim`.