I said something in my last email that seems problematic:

Unless we have reason to know that caller and callee are structurally
required to have the same resolution, we have to assume that they might
have different resolutions. And if it happens that they *do* have different
resolutions, then *the two instances of int in this example aren't really
the same type, because their behavior is different*.


This statement makes me a bit queasy, because if we have:

def WriteObject outStream i : int =
  let OMarshall int = OrphanedInstance in
     outStream << i
     i


We certainly want the return type to be the same as the second argument
type. We really don't want the local extension of the instance binding
environment to impact the type of i at the procedure boundary. Which brings
me to the problem of instance binding scopes, which will be my next email,
but it needs a new subject line.


Jonathan
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to