discard """ output: '''first call of p some call of p new instantiation some call of p''' """ template once(body: stmt) = var x {.global.} = false if not x: x = true body proc p() = once: echo "first call of p" echo "some call of p" p() once: echo "new instantiation" p()