. Bird>>, Bird addRequiredIniModule: [ :flies :instVars | instVars at: #flies put: flies

, Penguin addIniModule: [ :flies :instVars | "do nothing, only eat the parameter

, This combination of ini-modules makes sure that (1) if flies is provided in an objectcreation expression instantiating the class Penguin, it will be consumed and ignored by the inimodule Penguin»(flies)(); (2) in all cases, flies will be set to false by Penguin»()(flies) which is activated after Penguin»(flies)() (note that the default Rule 2 applies here), fact, in such a case the ini-module Penguin»()(flies) would not be activated

K. Beck, Smalltalk Best Practice Patterns, 1997.

A. Bergel, S. Ducasse, O. Nierstrasz, and R. Wuyts, Stateful traits, Advances in Smalltalk-Proceedings of 14th International Smalltalk Conference (ISC'06), vol.4406, pp.66-90, 2007.
URL : https://hal.archives-ouvertes.fr/hal-02109190

A. P. Black, S. Ducasse, O. Nierstrasz, D. Pollet, D. Cassou et al., Pharo by Example. Square Bracket Associates, 2009.

V. Bono, J. Ku?mierek, and M. Mulatero, Magda: A new language for modularity, ECOOP, pp.560-588, 2012.

V. Bono and J. D. Kusmierek, FJMIP: A calculus for a modular object initialization, Fundamentals of Computation Theory, 16th International Symposium, pp.100-112, 2007.

V. Bono and J. D. Ku?mierek, Modularizing constructors, Journal of Object Technology, vol.6, issue.9, pp.297-397, 2007.

R. J. Cardone, Language and Compiler Support for Mixin Programming, 2002.

T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, Second Edition, 2001.

S. Ducasse, O. Nierstrasz, N. Schärli, R. Wuyts, and A. P. Black, Traits: A mechanism for fine-grained reuse, ACM Transactions on Programming Languages and Systems (TOPLAS), vol.28, issue.2, pp.331-388, 2006.

M. Fähndrich and K. R. Leino, Declaring and checking non-null types in an object-oriented language, Proceedings of the 2003 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA 2003, pp.302-312, 2003.

J. Gil and T. Shragai, Are we ready for a safer construction environment?, ECOOP 2009-Object-Oriented Programming, 23rd European Conference, pp.495-519, 2009.

A. B. Kahn, Topological sorting of large networks, Commun. ACM, vol.5, issue.11, pp.558-562, 1962.

J. Kusmierek, A Mixin Based Object-Oriented Calculus: True Modularity in ObjectOriented Programming, 2010.

B. Liskov and J. M. Wing, A behavioral notion of subtyping, ACM Trans. Program. Lang. Syst, vol.16, issue.6, pp.1811-1841, 1994.

M. Martin, M. Mezini, and S. Erdweg, Template constructors for reusable object initialization, GPCE'13: Proceedings of the 12th International Conference on Generative Programming: Concepts and Experiences, pp.43-52, 2013.

B. Meyer, Applying design by contract, IEEE Computer (Special Issue on Inheritance & Classification), vol.25, issue.10, pp.40-52, 1992.

B. Meyer, Object-Oriented Software Construction, 1997.

F. Spoto, The nullness analyser of julia, Logic for Programming, Artificial Intelligence, and Reasoning-16th International Conference, LPAR-16, pp.405-424, 2010.

F. Spoto and M. D. Ernst, Inference of field initialization, Proceedings of the 33rd International Conference on Software Engineering, pp.231-240, 2011.

R. E. Tarjan, Edge-disjoint spanning trees and depth-first search, Acta Inf, vol.6, pp.171-185, 1976.

Y. Zibin, D. Cunningham, I. Peshansky, and V. A. Saraswat, Object initialization in X10, ECOOP 2012-Object-Oriented Programming-26th European Conference, pp.207-231, 2012.