IMO, you don't need a separate += for Foo, if you have bar that retuns var int. 
It is enough to write: 
    
    
    type
      Foo* = object
        internal_bar: int
    
    proc `bar`*(f: Foo): int {.inline.} =
      ## Getter for immutable Foo
      f.internal_bar
    
    proc `bar`*(f: var Foo): var int {.inline.} =
      ## Getter for mutable Foo
      f.internal_bar
    
    proc `bar=`*(f: var Foo, val: int) {.inline.} =
      ## Setter
      f.internal_bar = val
    
    var a: Foo
    a.bar = 10
    a.bar += 5
    echo a.bar
    
    
    Run

Reply via email to