State annotations need more restrictions
The idea of the annotation is that it represents a state. Hence, the values of the arguments should be literals. Thus, we should add the following constraints:
- The argument values must be statically evaluable.
- The argument values must not produce evaluation errors when they are evaluated.
- The argument values must be identical to their evaluation result.
- The argument values or parts of values (in case of containers) may only be of the types:
bool,int,real,string,tuple,list,set,dict.
With these restrictions in place, tools that process annotations can depend on them.
Edited by Dennis Hendriks