Overriding methods per object in Nim can happen, sometimes I've seen this sort 
of handmade vtablish thing: 
    
    
    import sugar, strformat
    type
      Nimterface = object
        m: proc(x:int):string{.nimcall.}
    
    proc call(o: Nimterface,x:int):string = o.m(x)
    
    
    let obj1 = Nimterface(m:(x:int)=> &"one:{x}")
    let obj2 = Nimterface(m:(x:int)=> &"two:{2*x}")
    
    echo obj1.call(5)
    echo obj2.call(7)
    
    
    Run

That's a bit prototype ish 

Reply via email to