Hi, I want to declare a function that takes another one as its parameter. func someFunc(f: func(): bool): bool = f() Run
So I expect `someFunc` and `f` to have the `noSideEffect` pragma. import std/typetraits echo someFunc.type() Run But only `someFunc` has it, not its parameter. proc (f: proc (): bool{.closure.}): bool{.noSideEffect, gcsafe, locks: <unknown>.} Run Speaking of side effect, this affects lambdas too. echo type(func (): bool) Run proc (): bool{.closure.} Run So, is it a bug ? Although it is not a big deal since the first `func` in `someFunc` enforces `f` to have no side effects.