Functional programs as executable specifications
Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages
Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
ACM SIGPLAN Notices
ACM Transactions on Programming Languages and Systems (TOPLAS)
ML with extended pattern matching and subtypes
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Simula Begin
ACM Transactions on Programming Languages and Systems (TOPLAS)
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
An extensible dynamically-typed hierarchy of exceptions
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Journal of Functional Programming
Practical Datatype Specializations with Phantom Types and Recursion Schemes
Electronic Notes in Theoretical Computer Science (ENTCS)
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
Hi-index | 0.00 |
A record data type can be extended by addition of more fields. The extended type is a subtype of the original, in that any value of the extended type can be regarded as a value of the original type by ignoring the additional fields. This results in a type hierarchy.Milner [3] has proposed a polymorphic type system. With the Milner approach, the type of a function may contain type variables. This also results in a type hierarchy.In a language with a polymorphic type system, if it is anticipated that a record type will need to be extended, then the record type can be defined to have a dummy extension field. In the parent type, the extension field will have null contents of type void. The type of the extension field can differ with different subtypes.The approach can be extended to allow a type to be subtype of two or more parent types.To a limited extent, this approach can be used in Ada and other languages with generic program units.