lib.nim: import random import std/monotimes var list: ref seq[Monotime] new list proc action* = echo "Actions here." proc check(num: int) = if num == 1: list[].add(getMonoTime()) action() proc makeStep*(): ((proc(): void), ref seq[Monotime]) = let step = proc() {.closure.} = let val = rand 1..6 check val (step, list) Run
main.nim: import lib when isMainModule: var (step, list) = makeStep() for a in 1..10: step() echo list[] Run Can this approach be used?