Using the techniques in Type Information Restoring during parsing, we can collect some traces of type information during parsing. These information makes up the initial type constraint.
Now, given the initial type constraint, we want to propagate them over all the variables & values while the C0VM is running.
Notation: Maybe<T> -> unknown | T.
Type from Native Function
Since native functions are implemented internally, we can know the return type of native function. Therefore, most of the native function have signature like this: