@eniko Its not possible to unambiguously decide whether something is assignable to at parse time without context at parse time within Cheese
depending on what 'foo' is the following can be both valid and invalid
'foo = bar'
If foo is a top level function its, invalid
If foo is an immutable variable, its invalid
If foo is a mutable variable, it is valid
So on and so forth