Filters








1,139 Hits in 4.2 sec

A system of constructor classes: overloading and implicit higher-order polymorphism

Mark P. Jones
1995 Journal of functional programming  
AbstractThis paper describes a flexible type system that combines overloading and higher-order polymorphism in an implicitly typed language using a system ofconstructor classesa natural generalization  ...  The underlying type system permits higher-order polymorphism but retains many of the attractive features that have made Hindley/Milner type systems so popular.  ...  This is particularly interesting from a theoretical point of view since the type system includes both higher-order polymorphism (for example, allowing universal quantification over constructors of kind  ... 
doi:10.1017/s0956796800001210 fatcat:fnddnax6pramvlcp4neietw7h4

A system of constructor classes

Mark P. Jones
1993 Proceedings of the conference on Functional programming languages and computer architecture - FPCA '93  
This paper describes a flexible type system which combines overloading and higher-order polymorphism in an implicitly typed language using a system of constructor classes -a natural generalization of type  ...  The underlying type system permits higher-order polymorphism but retains many of many of the attractive features that have made the use of Hindley/Milner type systems so popular.  ...  This is particularly interesting from a theoretical point of view since the type system includes both higher-order polymorphism (for example, allowing universal quantification over constructors of kind  ... 
doi:10.1145/165180.165190 dblp:conf/fpca/Jones93 fatcat:xklgpw2ggfco5j2cdo6csgm55u

First-Class Type Classes [chapter]

Matthieu Sozeau, Nicolas Oury
2008 Lecture Notes in Computer Science  
Type Classes have met a large success in Haskell and Isabelle, as a solution for sharing notations by overloading and for specifying with abstract structures by quantification on contexts.  ...  We propose an embedding of type classes into a dependent type theory that is first-class and supports some of the most popular extensions right away.  ...  The relative (compared to Coq) lack of power of the higher-order logic in Isabelle/HOL makes it impossible to quantify on type constructors directly, using ordinary constructs of the language.  ... 
doi:10.1007/978-3-540-71067-7_23 fatcat:tz3zbirgrrfthmqclpog4ec2ae

First-class polymorphism with type inference

Mark P. Jones
1997 Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '97  
This paper uses relationships between types and logic to develop a type system, FCP, that supports first-class polymorphism, type inference, and also first-class abstract datatypes.  ...  The immediate result is a more expressive language, but there are also long term implications for language design. of first-class value are specified by giving the names and types for their constructors  ...  Acknowledgements Thanks to my friends and colleagues in the functional programming group at Nottingham for their valuable input to the development of the work described in this paper.  ... 
doi:10.1145/263699.263765 dblp:conf/popl/Jones97 fatcat:ookizfqw4zglrjpse7zdxlxwze

Modular type classes

Derek Dreyer, Robert Harper, Manuel M. T. Chakravarty, Gabriele Keller
2007 Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '07  
Type classes emphasize implicit program construction and ad hoc polymorphism.  ...  This view offers a harmonious integration of modules and type classes, where type class features, such as class hierarchies and associated types, arise naturally as uses of existing module-language constructs  ...  In the latter case, it must be additionally true that S1 is a valid class (the judgment Γ S1 class must hold for an appropriate Γ).  ... 
doi:10.1145/1190216.1190229 dblp:conf/popl/DreyerHCK07 fatcat:vlb37pwrq5e5pi3x3z4cdj22iy

Disjoint Sums over Type Classes in HOL [chapter]

Norbert Völker
1999 Lecture Notes in Computer Science  
In order to axiomatize the disjoint sums in HOL, datatypes are introduced which mirror the syntactic structure of type classes.  ...  This paper introduces disjoint sums over type classes containing possibly a countably infinite number of monomorphic types.  ...  Elwood Wilkins, Ray Turner and Martin Henson have provided valuable feedback on previous versions of this paper. The anonymous referees deserve thanks for their constructive criticism.  ... 
doi:10.1007/3-540-48256-3_2 fatcat:o7byls5clzhsddvcz5gsxzlqce

Type classes and overloading in higher-order logic [chapter]

Markus Wenzel
1997 Lecture Notes in Computer Science  
Type classes and overloading are shown to be independent concepts that can both be added to simple higher-order logics in the tradition of Church and Gordon, without demanding more logical expressiveness  ...  Our metalogical results may serve as a foundation of systems like Isabelle/Pure that offer the user Haskell-style order-sorted polymorphism as an extended syntactic feature.  ...  Olaf Müller, Wolfgang Naraschewski, David von Oheimb and Oscar Slotosch commented draft versions of the paper.  ... 
doi:10.1007/bfb0028402 fatcat:a7tffdkm2vgblfuk6e5grjqqea

Derivable Type Classes

Ralf Hinze, Simon Peyton Jones
2001 Electronical Notes in Theoretical Computer Science  
We begin by reviewing Haskell's type-class overloading mechanism. A brief review of type class overloading Haskell supports overloading, based on type classes.  ...  On the way, we came across a separate issue, concerning type-class overloading where higher kinds are involved.  ...  The second extension allows one to define instance declarations for higher-order kinded types through the notion of polymorphic predicates.  ... 
doi:10.1016/s1571-0661(05)80542-0 fatcat:uxsyhjb7r5hrzngfl4m3xb5gpe

Type classes with existential types

Konstantin Läufer
1996 Journal of functional programming  
We explore this combination in the context of higher-order functional languages with static typing, parametric polymorphism, algebraic data types and Hindley–Milner type inference.  ...  AbstractWe argue that the novel combination of type classes and existential types in a single language yields significant expressive power.  ...  I would like to thank the anonymous referees of FPCA '93 and JFP for their valuable feedback on earlier versions of this work and for suggesting the interesting example involving the composition of a list  ... 
doi:10.1017/s0956796800001817 fatcat:beki46tdn5ejbmcukjkqqnevia

ML Modules and Haskell Type Classes: A Constructive Comparison [chapter]

Stefan Wehr, Manuel M. T. Chakravarty
2008 Lecture Notes in Computer Science  
Researchers repeatedly observed that the module system of ML and the type class mechanism of Haskell are related. So far, this relationship has received little formal investigation.  ...  The work at hand fills this gap: It introduces type-preserving translations from modules to type classes and vice versa, which enable a thorough comparison of the two concepts.  ...  Jones then uses parametric polymorphism to express ML's sharing constraints and to abstract over concrete implementation types. His system supports first-class structures and higher-order modules.  ... 
doi:10.1007/978-3-540-89330-1_14 fatcat:vztdqnlevzdlrogtccj4tpb25i

Type classes as objects and implicits

Bruno C.d.S. Oliveira, Adriaan Moors, Martin Odersky
2010 Proceedings of the ACM international conference on Object oriented programming systems languages and applications - OOPSLA '10  
This paper also shows how Scala's type system conspires with implicits to enable, and even surpass, many common extensions of the Haskell type class system, making Scala ideally suited for generic programming  ...  Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphism.  ...  Bruno Oliveira was supported by the Engineering Research Center of Excellence Program of Korea Ministry of Education, Science and Technology (MEST) / Korea Science and Engineering Foundation (KOSEF) grant  ... 
doi:10.1145/1869459.1869489 dblp:conf/oopsla/OliveiraMO10 fatcat:y6l4qmcj6fddleuqq6za5eytca

Type classes as objects and implicits

Bruno C.d.S. Oliveira, Adriaan Moors, Martin Odersky
2010 SIGPLAN notices  
This paper also shows how Scala's type system conspires with implicits to enable, and even surpass, many common extensions of the Haskell type class system, making Scala ideally suited for generic programming  ...  Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphism.  ...  Bruno Oliveira was supported by the Engineering Research Center of Excellence Program of Korea Ministry of Education, Science and Technology (MEST) / Korea Science and Engineering Foundation (KOSEF) grant  ... 
doi:10.1145/1932682.1869489 fatcat:xl2jguqnljfivo3pdou5rfv75i

Associated types with class

Manuel M. T. Chakravarty, Gabriele Keller, Simon Peyton Jones, Simon Marlow
2005 SIGPLAN notices  
Haskell's type classes allow ad-hoc overloading, or typeindexing, of functions. A natural generalisation is to allow type-indexing of data types as well.  ...  In this paper, we introduce and motivate associated types as a rather natural generalisation of Haskell's existing type classes.  ...  We thank Amr Sabry for discussions on a previous version of this approach and for pointing us to the work of Garcia et al.  ... 
doi:10.1145/1047659.1040306 fatcat:h3jzu3finbbnbmnc4ijd6uq6um

Harmonizing classes, functions, tuples, and type parameters in virgil iii

Ben L. Titzer
2013 SIGPLAN notices  
We report on our experience with Virgil III, a practical language with a careful balance of classes, functions, tuples and type parameters.  ...  Features like first-class functions and lambdas are appearing everywhere.  ...  Acknowledgments Thanks to Alex Warth, Jan-Willem Maessen, Marek Gilbert, and Jens Palsberg for comments on early drafts of this paper.  ... 
doi:10.1145/2499370.2491962 fatcat:djjisg6iyvgztpwhohhkwvojji

Harmonizing classes, functions, tuples, and type parameters in virgil iii

Ben L. Titzer
2013 Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation - PLDI '13  
We report on our experience with Virgil III, a practical language with a careful balance of classes, functions, tuples and type parameters.  ...  Features like first-class functions and lambdas are appearing everywhere.  ...  Acknowledgments Thanks to Alex Warth, Jan-Willem Maessen, Marek Gilbert, and Jens Palsberg for comments on early drafts of this paper.  ... 
doi:10.1145/2491956.2491962 dblp:conf/pldi/Titzer13 fatcat:7ba5m4grzfdr5fd46mgdynovmu
« Previous Showing results 1 — 15 out of 1,139 results