I am not sure if it is intentional, but it looks like a bug: Why is `table` 
here global?
    
    
    let table {.global.} = MethodTable(
        foo: proc (this:pointer):int = cast[ptr T](this).foo
    )
    

EDIT:

Btw that is the same way I started. I wrote a version that works without 
macros, and then I wrote a marco that would generate all the parts that could 
be automated.

Reply via email to