Subject: Re: desugaring issue
From: Jonathan Aldrich (jonal@cs.washington.edu)
Date: Sun Jan 28 2001 - 16:58:46 PST
> forall `G <= AnalysisGraph[E, P],
> `E <= IREdge, `P <= AnalysisPriority[P]:
> object ScopeAnalysis[G]
> isa Analysis[GenericScopeAnalysisInfo,G];
>
> Semantically it is essential that all of `G, `E, and `P, together
> with all the constraints, should be part of both the "object" and
> "isa" desugared declarations.
Hmm...that makes sense. However, if there is already a constraint on the
second parameter of Analysis, it seems like that should automatically be
"inherited" by ScopeAnalysis. That is,
-- somewhere else
forall `G <= AnalysisGraph[E, P],
`E <= IREdge, `P <= AnalysisPriority[P], `I <= Something :
object Analysis[I,G];
-- inherits all the constraints on G, E, and P from Analysis
object ScopeAnalysis[G] isa Analysis[GenericScopeAnalysisInfo,G];
To me, that would be the intuitive semantics, and one which naturally lets
you avoid excessive explicit constraints. Since I'm not a types expert,
I'm probably missing some subtlety, but that's what seems natural to me as
a user.
Jonathan :-)
This archive was generated by hypermail 2b25 : Sun Jan 28 2001 - 16:58:51 PST