Hello all, I have been annoyed that everything is encapsulated under a single 
parent object in my project, like this:
    
    
    type
      Global = object
        st1: St1
        st2: St2
        ...
    
    var g: Global
    foo(g)
    bar(g)
    
    
    Run

Nearly every proc operates on this type and most likely it's passed as a `var` 
parameter. It also means fields are deeply nested, so you will see a lot of 
this pattern: `g.st1.foo.bar`.

Would this style be more preferable:
    
    
    var
      st1: Stat1
      st2: Stat2
    
    foo(st1, st2)
    bar(st2)
    
    
    Run

This way you can fine-tune what data you pass as mutable/non-mutable 
parameters. I would suppose this way it's more, or is it considered 
micromanaging? Which one do you prefer when writing code in Nim?

Looking at the most popular project written in Nim, the compiler, I spotted a 
lot of procs that follow this pattern in their signature:
    
    
    proc foo(bar: var Bar; baz: Baz; bas: var Bas)
    
    
    Run

So I suppose, that's more idiomatic?

Reply via email to