[M3devel] M3CG_Ops.Public vs. M3CG.T

Antony Hosking hosking at cs.purdue.edu
Wed Sep 26 16:42:26 CEST 2012


I disagree.  M3CG.T is more abstract than M3CG_Ops.  The revelation of M3CG.T <: M3CG_Ops.Public is in M3CG_Ops.  If you want the ops you simply import that interface to get the revelation.  Please don’t make pervasive changes in interfaces that some of us are developing against.

On Sep 26, 2012, at 4:11 AM, Jay K <jay.krell at cornell.edu> wrote:

> M3CG_Ops.i3:
> 
> 
> child: M3CG.T := NIL;
> (* The default methods simply call the corresponding method in 'child',
>    hence a vanilla 'M3CG.T' can be used as a filter where you override
>    only the methods of interest. *)
> 
> 1)
> 
> I am not keen on fixing this, but I feel this was clearly a mistake.
> 
> M3CG_Ops.Public should have been "purely abstract" with no default
> implementation.
> M3CG_Filter.T or somesuch could have been as described.
> 
> 
> 2) I am fixing:
> M3CG.T is overused.
> Most uses should be M3CG_Ops.Public.
> It is ok to derive from -- though that was a mistake.
> But functions that take or return M3CG.T should really be
> taking and returning M3CG_Ops.Public.
> 
> 
>   - Jay
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20120926/e6216391/attachment-0002.html>


More information about the M3devel mailing list