On Sat, Dec 27, 2014 at 6:09 PM, Jonathan S. Shapiro <[email protected]> wrote: > On Sat, Dec 27, 2014 at 3:02 PM, Matt Oliveri <[email protected]> wrote: >> On Sat, Dec 27, 2014 at 1:56 PM, Jonathan S. Shapiro <[email protected]> >> wrote: >> >> > def getX (ob : 'Ob) = ob.x >> > val getX : HasField('Ob, 'x :: Ident, 'fieldType) => 'Ob -> 'fieldType >> >> Oh, no no no! "." is not pattern matching. It's projection. This is >> not a counterexample. > > Point taken, and I appreciate the correction. But whether it's projection or > matching, hopefully you can see my illustration that it might be viewed as > inducing a constraint on the type of /ob/. To wit: you only look at ob.x for > those values ob that *have* an x field. :-)
Yes, that makes perfect sense. I am only objecting to the sense I got from David that there's something wrong with closed variant types for modular compilation. _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
