Why it was deprecated? Normally if something is deprecated there is a better alternative or at least a reason. + It's in the manual.
It quickly becomes cumbersome to write type names everywhere if the proc is a complex one. I'm not a lazy man but it hurts my eyes :)
There is the with and the cascade package, maybe that is useful for you:
$ nimble search with
cascade:
url: https://github.com/citycide/cascade (git)
tags: macro, cascade, operator, dart, with
description: Method & assignment cascades for Nim, inspired by Smalltalk & Dart.
license: MIT
website: https://github.com/citycide/cascade
with:
url: https://github.com/zevv/with (git)
tags: with, macro
description: Simple 'with' macro for Nim
license: MIT
website: https://github.com/zevv/with