`strfmt` uses the experimental `concept` feature with weird symbol binding
rules. You cannot blame macros for this.
This snippet works perfectly fine
from nre import re, match, RegexMatch, captures, `[]`
from options import isSome, get
from streams import Stream, readAll, newFileStream
from strfmt import fmt, ftStr, faDefault, fsMinus, addformat, format, write
from strutils import splitLines, `%`
from tables import OrderedTableRef, newOrderedTable, contains, `[]=`, `$`
let sectname = "foo"
let line = "bar"
echo "{0:-12s} {1:s}".fmt(sectname, line)
Note that I had to import `write` to make the `Writer` concept happy.