Ticket #23 (new enhancement)
Mask effects on fresh data
|Reported by:||anonymous||Owned by:|
|Component:||Source Type Inferencer||Version:|
In a type like
fun :: forall %r1 %r2 . Int %r1 -(!e1)> Int %r2 :- !e1 = Read %r2
The effect Read %r2 isn't being masked by Type.Scheme because %r2 is visible in the shape of the type. However, as the data is fresh the fact that there was a read when constructing it does matter, so it can be masked.
Core.Reconstruct will need to use the closure annotations on XLam nodes to show that this is ok.