Mostrar el registro sencillo del ítem

dc.contributor.author
Martínez, Guido  
dc.contributor.author
Jaskelioff, Mauro Javier  
dc.contributor.author
De Luca, Guido  
dc.date.available
2019-12-20T19:21:05Z  
dc.date.issued
2018-09  
dc.identifier.citation
Martínez, Guido; Jaskelioff, Mauro Javier; De Luca, Guido; Improving typeclass relations by being open; Association for Computing Machinery; Acm Sigplan Notices; 53; 7; 9-2018; 68-80  
dc.identifier.issn
0362-1340  
dc.identifier.uri
http://hdl.handle.net/11336/92644  
dc.description.abstract
Mathematical concepts such as monads, functors, monoids, and semigroups are expressed in Haskell as typeclasses. Therefore, in order to exploit relations such as every monad is a functor, and every monoid is a semigroup, we need to be able to also express relations between typeclasses. Currently, the only way to do so is using superclasses. However, superclasses can be problematic due to their closed nature. Adding a superclass implies modifying the subclass definition, which is either impossible if one does not own such code, or painful as it requires cascading changes and the introduction of boilerplate throughout the codebase. In this article, we introduce class morphisms, a way to relate classes in an open fashion, without changing class definitions. We show how class morphisms improve the expressivity, conciseness, and maintainability of code. Further, we show how to implement them while maintaining canonicity and coherence, two key properties of the Haskell type system. Extending a typechecker with class morphisms amounts to adding an elaboration phase and is an unintrusive change. We back this claim with a prototype extension of GHC.  
dc.format
application/pdf  
dc.language.iso
eng  
dc.publisher
Association for Computing Machinery  
dc.rights
info:eu-repo/semantics/openAccess  
dc.rights.uri
https://creativecommons.org/licenses/by-nc-sa/2.5/ar/  
dc.subject
AD-HOC POLYMORPHISM  
dc.subject
TYPE SYSTEMS  
dc.subject
TYPECLASSES  
dc.subject.classification
Ciencias de la Computación  
dc.subject.classification
Ciencias de la Computación e Información  
dc.subject.classification
CIENCIAS NATURALES Y EXACTAS  
dc.title
Improving typeclass relations by being open  
dc.type
info:eu-repo/semantics/article  
dc.type
info:ar-repo/semantics/artículo  
dc.type
info:eu-repo/semantics/publishedVersion  
dc.date.updated
2019-10-17T14:56:49Z  
dc.journal.volume
53  
dc.journal.number
7  
dc.journal.pagination
68-80  
dc.journal.pais
Estados Unidos  
dc.description.fil
Fil: Martínez, Guido. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Rosario. Centro Internacional Franco Argentino de Ciencias de la Información y de Sistemas. Universidad Nacional de Rosario. Centro Internacional Franco Argentino de Ciencias de la Información y de Sistemas; Argentina  
dc.description.fil
Fil: Jaskelioff, Mauro Javier. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Rosario. Centro Internacional Franco Argentino de Ciencias de la Información y de Sistemas. Universidad Nacional de Rosario. Centro Internacional Franco Argentino de Ciencias de la Información y de Sistemas; Argentina  
dc.description.fil
Fil: De Luca, Guido. Universidad Nacional de Rosario. Facultad de Ciencias Exactas, Ingeniería y Agrimensura; Argentina  
dc.journal.title
Acm Sigplan Notices  
dc.relation.alternativeid
info:eu-repo/semantics/altIdentifier/url/http://dl.acm.org/citation.cfm?doid=3299711.3242751  
dc.relation.alternativeid
info:eu-repo/semantics/altIdentifier/doi/http://dx.doi.org/10.1145/3299711.3242751