Supports, if the sum type can be treated as generic, i.e. if compiler can
decide at compile-time for each use of the sum type, which concrete type will
it substitute. Like in using such a proc:
proc test(arg: static[int]):Ret =
when arg < 0:
return A(a_value:arg)
else:
return B(b_value:arg)
But the argument, on which the type choice is made, is static, that is,
compile-time: really 2 different zero-argument procs will be instantiated by
compiler for `test(10)` and `test(-5)`, and their arguments should be able to
be evaluated at compile-time.