On Thu, Oct 04, 2018 at 09:35:08PM +0200, JJ Merelo wrote: : El jue., 4 oct. 2018 21:21, Brandon Allbery <allber...@gmail.com> escribió: : : > I don't think we've reached the point of such conventions yet. And there's : > some history here, in --> not having done anything in the early days except : > possibly slow things down, and between --> and 'returns' (which is now : > deprecated). : > : : Not yet. Maybe never...
--> generalizes to pointy blocks and such. 'returns' doesn't. --> allows return of explicit literal Nil and True and 42. 'returns' doesn't. --> makes the return an official part of the routine's contract. 'returns' doesn't. For various purposes it would be nice to know we have the entire in/out contract before we start processing all the oh-by-the-way traits that can turn the contract into a time-traveling brain pretzel. For instance, what if one of the phaser traits needs to know will be returned, and the 'returns' comes after that? Putting in error messages that say "Too late for returns trait" is a design smell... So never say never. :) Larry