Damian Conway <[EMAIL PROTECTED]> writes:

> Thanks for getting this RFC together, Piers.
> 
> A few comments:
> 
>       * I suggest you remove my alternative C<:must(Foo)> suggestion.
>           It's too ugly to live, inless you just want to use it as a
>           scare tactic to encourage Larry to chose the C<interface>
>           syntax instead ;-)

I'll get rid of it and reference the message where you propose the too
ugly to live syntax.

>       * The new C<interface> keyword would be unnecessary if *package
>         specifications* could take attributes:
> 
>               interface Fetcher;
> 
>         would then become:
> 
>               package Fetcher : interface;

New RFC threatened: "Attributes everywhere and damn the
implementation." Damian can write it.

>       * There's also no need to distinguish C<use base> and C<use interface>,
>         since you've previously distinguished them by keyword. I would
>         suggest that either C<use base> be used for both types of
>         inheritance, or else the definition of an interface specification
>         just be a regular C<package>.

I dunno. I like the Javaesque distinction between a class *being* a
Dog and *implementing* Fetcher. Sure it's syntactic sugar, but I think
it's good sugar.


>       * Interfaces will also need to honour C<use delegation>
>           (RFC 193), which provides yet another way of *not* actually
>           specifying a method, yet still having it callable.

I'm not sure that this needs to go into the body of the RFC. I'll
stick it on as a reference with a note to the effect that if 'use
delegation' gets implemented then interfaces will have to take note. 

> 
> 
>         * The C<use deferred> pragma seems unnecessary, as it is sufficient
>           to *declare* the autoloaded method, rather than *define* it.
>           That is:
> 
>                 use deferred 'rollover';
> 
>           is really just:
> 
>                 sub rollover;
> 
>           BTW, this trick already works in Perl 5 (for making C<can>
>           acknowledge autoloaded methods).

Hmm... point taken. Though I do think C<use deferred> could be looked
upon as a vaguely nice bit of syntactic sugar...

-- 
Piers

Reply via email to