{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,4]],"date-time":"2024-09-04T22:28:45Z","timestamp":1725488925471},"publisher-location":"Berlin, Heidelberg","reference-count":39,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540735885"},{"type":"electronic","value":"9783540735892"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"DOI":"10.1007\/978-3-540-73589-2_17","type":"book-chapter","created":{"date-parts":[[2007,8,12]],"date-time":"2007-08-12T17:48:05Z","timestamp":1186940885000},"page":"347-372","source":"Crossref","is-referenced-by-count":7,"title":["JavaGI: Generalized Interfaces for Java"],"prefix":"10.1007","author":[{"given":"Stefan","family":"Wehr","sequence":"first","affiliation":[]},{"given":"Ralf","family":"L\u00e4mmel","sequence":"additional","affiliation":[]},{"given":"Peter","family":"Thiemann","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"17_CR1","unstructured":"Bracha, G.: Generics in the Java programming language (July 2004), http:\/\/java.sun.com\/j2se\/1.5\/pdf\/generics-tutorial.pdf"},{"key":"17_CR2","first-page":"183","volume-title":"Proc. 13th ACM Conf. OOPSLA","author":"G. Bracha","year":"1998","unstructured":"Bracha, G., Odersky, M., Stoutamire, D., Wadler, P.: Making the future safe for the past: Adding genericity to the Java programming language. In: Proc. 13th ACM Conf. OOPSLA, Vancouver, BC, October 1998, pp. 183\u2013200. ACM Press, New York (1998)"},{"issue":"3","key":"17_CR3","doi-asserted-by":"crossref","first-page":"221","DOI":"10.1002\/j.1096-9942.1995.tb00019.x","volume":"1","author":"K.B. Bruce","year":"1995","unstructured":"Bruce, K.B., Cardelli, L., Castagna, G., Eifrig, J., Smith, S.F., Trifonov, V., Leavens, G.T., Pierce, B.C.: On binary methods. Theory and Practice of Object Systems\u00a01(3), 221\u2013242 (1995)","journal-title":"Theory and Practice of Object Systems"},{"key":"17_CR4","series-title":"Lecture Notes in Computer Science","first-page":"389","volume-title":"ECOOP 2004 \u2013 Object-Oriented Programming","author":"K.B. Bruce","year":"2004","unstructured":"Bruce, K.B., Foster, J.N.: LOOJ: Weaving LOOM into Java. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol.\u00a03086, pp. 389\u2013413. Springer, Heidelberg (2004)"},{"key":"17_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"523","DOI":"10.1007\/BFb0054106","volume-title":"ECOOP \u201998 - Object-Oriented Programming","author":"K.B. Bruce","year":"1998","unstructured":"Bruce, K.B., Odersky, M., Wadler, P.: A statically safe alternative to virtual types. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol.\u00a01445, pp. 523\u2013549. Springer, Heidelberg (1998)"},{"key":"17_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"104","DOI":"10.1007\/BFb0053376","volume-title":"ECOOP \u201997 - Object-Oriented Programming","author":"K.B. Bruce","year":"1997","unstructured":"Bruce, K.B., Petersen, L., Fiech, A.: Subtyping is not a good \u201dmatch\u201d for object-oriented languages. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol.\u00a01241, pp. 104\u2013127. Springer, Heidelberg (1997)"},{"issue":"2","key":"17_CR7","doi-asserted-by":"publisher","first-page":"225","DOI":"10.1145\/641888.641891","volume":"25","author":"K.B. Bruce","year":"2003","unstructured":"Bruce, K.B., Schuett, A., van Gent, R., Fiech, A.: PolyTOIL: A type-safe polymorphic object-oriented language. ACM Trans. Prog. Lang. and Systems\u00a025(2), 225\u2013290 (2003)","journal-title":"ACM Trans. Prog. Lang. and Systems"},{"key":"17_CR8","first-page":"241","volume-title":"Proc.\u00a0Intl. Conf. Functional Programming 2005","author":"M.M.T. Chakravarty","year":"2005","unstructured":"Chakravarty, M.M.T., Keller, G., Jones, S.P.: Associated type synonyms. In: Pierce, B.C. (ed.) Proc.\u00a0Intl. Conf. Functional Programming 2005, Tallinn, Estonia, September 2005, pp. 241\u2013253. ACM Press, New York (2005)"},{"key":"17_CR9","first-page":"1","volume-title":"Proc.\u00a032nd ACM Symp. POPL","author":"M.M.T. Chakravarty","year":"2005","unstructured":"Chakravarty, M.M.T., Keller, G., Jones, S.P., Marlow, S.: Associated types with class. In: Abadi, M. (ed.) Proc.\u00a032nd ACM Symp. POPL, Long Beach, CA, January 2005, pp. 1\u201313. ACM Press, New York (2005)"},{"key":"17_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1007\/BFb0053029","volume-title":"ECOOP \u201992 European Conference on Object-Oriented Programming","author":"C. Chambers","year":"1992","unstructured":"Chambers, C.: Object-oriented multi-methods in Cecil. In: Madsen, O.L. (ed.) ECOOP 1992. LNCS, vol.\u00a0615, pp. 33\u201356. Springer, Heidelberg (1992)"},{"issue":"3","key":"17_CR11","doi-asserted-by":"publisher","first-page":"517","DOI":"10.1145\/1133651.1133655","volume":"28","author":"C. Clifton","year":"2006","unstructured":"Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design rationale, compiler implementation, and applications. ACM Trans. Prog. Lang. and Systems\u00a028(3), 517\u2013575 (2006)","journal-title":"ACM Trans. Prog. Lang. and Systems"},{"key":"17_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"303","DOI":"10.1007\/3-540-45337-7_17","volume-title":"ECOOP 2001 - Object-Oriented Programming","author":"E. Ernst","year":"2001","unstructured":"Ernst, E.: Family polymorphism. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol.\u00a02072, pp. 303\u2013326. Springer, Heidelberg (2001)"},{"key":"17_CR13","first-page":"270","volume-title":"Proc.\u00a033rd ACM Symp. POPL","author":"E. Ernst","year":"2006","unstructured":"Ernst, E., Ostermann, K., Cook, W.R.: A virtual class calculus. In: Jones, S.P. (ed.) Proc.\u00a033rd ACM Symp. POPL, Charleston, South Carolina, January 2006, pp. 270\u2013282. ACM Press, New York (2006)"},{"key":"17_CR14","first-page":"139","volume-title":"Proc. 21th ACM Conf. OOPSLA","author":"P. Eugster","year":"2006","unstructured":"Eugster, P.: Uniform proxies for Java. In: Proc. 21th ACM Conf. OOPSLA, Portland, OR, pp. 139\u2013152. ACM Press, New York (2006)"},{"issue":"2","key":"17_CR15","doi-asserted-by":"publisher","first-page":"109","DOI":"10.1145\/227699.227700","volume":"18","author":"C.V. Hall","year":"1996","unstructured":"Hall, C.V., Hammond, K., Jones, S.L.P., Wadler, P.L.: Type classes in Haskell. ACM Trans. Prog. Lang. and Systems\u00a018(2), 109\u2013138 (1996)","journal-title":"ACM Trans. Prog. Lang. and Systems"},{"key":"17_CR16","doi-asserted-by":"crossref","unstructured":"Helm, R., Holland, I.M., Gangopadhyay, D.: Contracts: specifying behavioral compositions in object-oriented systems. In: Conf.\u00a0OOPSLA \/ ECOOP, Ottawa, Canada, October 1990, vol.\u00a025(10), pp. 169\u2013180 (1990)","DOI":"10.1145\/97945.97967"},{"issue":"3","key":"17_CR17","doi-asserted-by":"publisher","first-page":"396","DOI":"10.1145\/503502.503505","volume":"23","author":"A. Igarashi","year":"2001","unstructured":"Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans. Prog. Lang. and Systems\u00a023(3), 396\u2013450 (2001)","journal-title":"ACM Trans. Prog. Lang. and Systems"},{"key":"17_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"230","DOI":"10.1007\/3-540-46425-5_15","volume-title":"Programming Languages and Systems","author":"M.P. Jones","year":"2000","unstructured":"Jones, M.P.: Type classes with functional dependencies. In: Smolka, G. (ed.) ESOP 2000 and ETAPS 2000. LNCS, vol.\u00a01782, pp. 230\u2013244. Springer, Heidelberg (2000)"},{"key":"17_CR19","first-page":"1","volume-title":"Proc. 20th ACM Conf. OOPSLA","author":"J. J\u00e4rvi","year":"2005","unstructured":"J\u00e4rvi, J., Willcock, J., Lumsdaine, A.: Associated types and constraint propagation for mainstream object-oriented generics. In: Proc. 20th ACM Conf. OOPSLA, pp. 1\u201319. ACM Press, New York (2005)"},{"key":"17_CR20","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"131","DOI":"10.1007\/3-540-19027-9_9","volume-title":"ESOP \u201988","author":"S. Kaes","year":"1988","unstructured":"Kaes, S.: Parametric overloading in polymorphic programming languages. In: Ganzinger, H. (ed.) ESOP 1988. LNCS, vol.\u00a0300, pp. 131\u2013144. Springer, Heidelberg (1988)"},{"key":"17_CR21","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/378795.378797","volume-title":"Proc. 2001 PLDI","author":"A. Kennedy","year":"2001","unstructured":"Kennedy, A., Syme, D.: Design and implementation of generics for the .NET common language runtime. In: Proc. 2001 PLDI, Snowbird, UT, June 2001, pp. 1\u201312. ACM Press, New York (2001)"},{"key":"17_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"327","DOI":"10.1007\/3-540-45337-7_18","volume-title":"ECOOP 2001 - Object-Oriented Programming","author":"G. Kiczales","year":"2001","unstructured":"Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol.\u00a02072, pp. 327\u2013353. Springer, Heidelberg (2001)"},{"key":"17_CR23","doi-asserted-by":"publisher","first-page":"161","DOI":"10.1145\/1173706.1173732","volume-title":"GPCE \u201906","author":"R. L\u00e4mmel","year":"2006","unstructured":"L\u00e4mmel, R., Ostermann, K.: Software extension and integration with type classes. In: GPCE \u201906, pp. 161\u2013170. ACM Press, New York (2006)"},{"key":"17_CR24","volume-title":"Object-Oriented Programming in the BETA Programming Language","author":"O.L. Madsen","year":"1993","unstructured":"Madsen, O.L., M\u00f8ller-Pedersen, B., Nygaard, K.: Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, Reading (1993)"},{"key":"17_CR25","unstructured":"Microsoft Corp. C# Version 3.0 Specification (May 2006), http:\/\/msdn2.microsoft.com\/en-us\/vcsharp\/aa336745.aspx"},{"key":"17_CR26","first-page":"224","volume-title":"Proc. 18th ACM Conf. OOPSLA","author":"T. Millstein","year":"2003","unstructured":"Millstein, T., Reay, M., Chambers, C.: Relaxed MultiJava: Balancing extensibility and modular typechecking. In: Proc. 18th ACM Conf. OOPSLA, Anaheim, CA, pp. 224\u2013240. ACM Press, New York (2003)"},{"key":"17_CR27","unstructured":"Odersky, M.: The scala language specification version 2.0, Draft (November 2006), http:\/\/scala.epfl.ch\/docu\/files\/ScalaReference.pdf"},{"key":"17_CR28","first-page":"41","volume-title":"Proc. 20th ACM Conf. OOPSLA","author":"M. Odersky","year":"2005","unstructured":"Odersky, M., Zenger, M.: Scalable component abstractions. In: Proc. 20th ACM Conf. OOPSLA, San Diego, CA, 2005, pp. 41\u201358. ACM Press, New York (2005)"},{"volume-title":"Haskell 98 Language and Libraries, The Revised Report","year":"2003","key":"17_CR29","unstructured":"Peyton Jones, S. (ed.): Haskell 98 Language and Libraries, The Revised Report. Cambridge University Press, Cambridge (2003)"},{"key":"17_CR30","unstructured":"Peyton Jones, S., Jones, M., Meijer, E.: Type classes: An exploration of the design space. In: Launchbury, J. (ed) Proc.\u00a0of the Haskell Workshop, Amsterdam, June 1997, The Netherlands (1997)"},{"key":"17_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"494","DOI":"10.1007\/3-540-46102-7_52","volume-title":"Object-Oriented Information Systems","author":"K.C. Sekharaiah","year":"2002","unstructured":"Sekharaiah, K.C., Ram, D.J.: Object schizophrenia problem in object role system design. In: Bellahs\u00e8ne, Z., Patel, D., Rolland, C. (eds.) OOIS 2002. LNCS, vol.\u00a02425, pp. 494\u2013506. Springer, Heidelberg (2002)"},{"key":"17_CR32","first-page":"73","volume-title":"Proc. 2005 ACM Conf. PLDI","author":"J. Siek","year":"2005","unstructured":"Siek, J., Lumsdaine, A.: Essential language support for generic programming. In: Proc. 2005 ACM Conf. PLDI, June 2005, pp. 73\u201384. ACM Press, New York (2005)"},{"key":"17_CR33","series-title":"Lecture Notes in Computer Science","volume-title":"ECOOP 2004 \u2013 Object-Oriented Programming","author":"M. Torgersen","year":"2004","unstructured":"Torgersen, M.: The expression problem revisited \u2014 four new solutions using generics. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol.\u00a03086, Springer, Heidelberg (2004)"},{"key":"17_CR34","unstructured":"Torgersen, M., Ernst, E., Hansen, C.P.: Wild FJ. In: International Workshop on Foundations of Object-Oriented Languages, informal proceedings (2005)"},{"issue":"11","key":"17_CR35","doi-asserted-by":"crossref","first-page":"97","DOI":"10.5381\/jot.2004.3.11.a5","volume":"3","author":"M. Torgersen","year":"2004","unstructured":"Torgersen, M., Ernst, E., Hansen, C.P., von der Ah\u00e9, P., Bracha, G., Gafter, N.: Adding wildcards to the java programming language. Journal of Object Technology\u00a03(11), 97\u2013116 (2004)","journal-title":"Journal of Object Technology"},{"key":"17_CR36","unstructured":"Wadler, P.: The expression problem, Posted on Java Genericity mailing list (1998)"},{"key":"17_CR37","first-page":"60","volume-title":"Proc. 16th ACM Symp. POPL","author":"P. Wadler","year":"1989","unstructured":"Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad-hoc. In: Proc. 16th ACM Symp. POPL, Austin, Texas, January 1989, pp. 60\u201376. ACM Press, New York (1989)"},{"key":"17_CR38","first-page":"37","volume-title":"Proc. 21th ACM Conf. OOPSLA","author":"A. Warth","year":"2006","unstructured":"Warth, A., Stanojevic, M., Millstein, T.: Statically scoped object adaptation with expanders. In: Proc. 21th ACM Conf. OOPSLA, Portland, OR, 2006, pp. 37\u201356. ACM Press, New York (2006)"},{"key":"17_CR39","first-page":"39","volume-title":"Proc.\u00a031st ACM Symp. POPL","author":"D. Yu","year":"2004","unstructured":"Yu, D., Kennedy, A., Syme, D.: Formalization of generics for the .NET common language runtime. In: Leroy, X. (ed.) Proc.\u00a031st ACM Symp. POPL, Venice, Italy, January 2004, pp. 39\u201351. ACM Press, New York (2004)"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2007 \u2013 Object-Oriented Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-73589-2_17.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,11,19]],"date-time":"2020-11-19T00:16:20Z","timestamp":1605744980000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-73589-2_17"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[null]]},"ISBN":["9783540735885","9783540735892"],"references-count":39,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-73589-2_17","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[]}}