I think using the same name or the same character for different things can 
cause confusion even if they are related. Nim uses `[` and `]` for both array 
and generics and that caused the method call syntax conflicts with explicit 
generic instantiations. So the `[: ]` notation has been designed. 
<https://nim-lang.org/docs/manual.html#procedures-method-call-syntax>

If `return` was used instead of `result` in following code, you cannot call 
procedual type `result` in command invocation syntax.
    
    
    proc foo: proc (x: int) =
      result = proc (x: int) = echo x
      # Call above procedure
      result 10
    
    Run

Reply via email to