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