These are still expressible without a DSL: BigO(Atom("array[].walkLength") + Atom("r.walkLength")) etc.
We can remove the use of strings if we tag walkLength with BigO:
// this:
BigO(Atom("array[].walkLength") + Atom("r.walkLength"))
//become this:
@(complexity!(array[].walkLength) + complexity!(r.walkLength))
Or if we rename complexity to bigO:
@(bigO!(array[].walkLength) + bigO!(r.walkLength))
