\contentsline {section}{\numberline {1}Introduction}{1} \contentsline {section}{\numberline {2}Alternatives}{1} \contentsline {subsection}{\numberline {2.1}Object and type alternatives}{2} \contentsline {subsubsection}{\numberline {2.1.1}Object alternative}{2} \contentsline {subsubsection}{\numberline {2.1.2}Type alternatives}{3} \contentsline {subsection}{\numberline {2.2}Message passing and generic function alternatives}{4} \contentsline {subsubsection}{\numberline {2.2.1}Message passing alternative}{4} \contentsline {subsubsection}{\numberline {2.2.2}Generic function alternative}{4} \contentsline {section}{\numberline {3}Overloading and dynamic method selection}{6} \contentsline {paragraph}{A brief comparison between CLOS and C++.}{7} \contentsline {section}{\numberline {4}The Law in mixed paradigm languages}{7} \contentsline {section}{\numberline {5}Nesting of generic function calls}{8} \contentsline {section}{\numberline {6}Interface of a function}{10} \contentsline {section}{\numberline {7}Formulations for existing languages}{11} \contentsline {section}{\numberline {8}Questions and answers}{14} \contentsline {section}{\numberline {9}Clients, suppliers and dependencies}{16} \contentsline {section}{\numberline {10}Black boxes}{18}