Calculate Polytypically!

@inproceedings{Meertens1996CalculateP,
  title={Calculate Polytypically!},
  author={Lambert Meertens},
  booktitle={PLILP},
  year={1996}
}
  • L. Meertens
  • Published in PLILP 24 September 1996
  • Computer Science
A polytypic function deenition is a function deenition that is parametrised with a datatype. It embraces a class of algorithms. As an example we deene a simple polytypic \crush" combinator that can be used to calculate polytypically. The ability to deene functions polytyp-ically adds another level of exibility in the reusability of programming idioms and in the design of libraries of interoperable components. 
Polytypic Abstraction in Type Theory
TLDR
This paper is concerned with formalizations and veriications in type theory that are abstracted with respect to a large class of datatypes; i.e polytypic formalizations, which can not only be used to polytypically deene functions but also to formally statePolytypic theorems and to interactively developpolytypic proofs using existing proof editors.
When Do Datatypes Commute?
TLDR
This paper formulate precisely the polytypic programming problem of “commuting” two datatypes, and demonstrates via a number of examples the relevance and interest of the problem, and shows that all “regular dat atypes" (tree-like datatype that one can define in a functional programming language) do indeed commute according to the specification.
What is a data type
TLDR
A general non inductive definition of ‘data type’ is proposed: a data type is a relator that has membership, and it is shown how this definition implies various other properties that are shared by all data types.
Polytypic Programming With Ease (Extended Abstract)
  • R. Hinze
  • Computer Science
    Fuji International Symposium on Functional and Logic Programming
  • 1999
TLDR
This paper proposes a new framework for a polytypic extension of functional programming languages that is simpler, more general, and more efficient than previous ones that are based on the initial algebra semantics of datatypes.
Polytypic Proof Construction
TLDR
This paper deals with formalizations and Verifications in type theory that are abstracted with respect to a class of datatypes; i.e polytypic constructions, which can not only be used to define functions in a generic way but also to formally statepolytypic theorems and to synthesizePolytypic proof objects in a formal way.
Polytypic Functions Over Nested Datatypes
  • R. Hinze
  • Computer Science
    Discret. Math. Theor. Comput. Sci.
  • 1999
TLDR
This work proposes an alternative that extends polytypism to arbitrary datatypes, including nesteddatatypes and mutually recursive datatype, and uses rational trees over a suitable set of functor symbols as type arguments for polytypic functions.
Yet Another Generic Haskell
TLDR
This reconstruction of functional strategies in Haskell in an extremely compact style relying on just two combinators for type-based function dispatch, and hfoldr for folding over constructor applications constitutes another way to turn Haskell into a (more) generic programming langua ge.
Container types categorically
TLDR
Here it is shown how a container type is a relator that has membership, and how this definition implies various other properties that are shared by all container types.
An Exercise in Polytypic Program Derivation: repmin
TLDR
The purpose of this paper is to persuade you that similar beneets can be reaped by abstracting over type constructors by presenting a polytypic derivation for the repmin problem.
...
...

References

SHOWING 1-10 OF 44 REFERENCES
Polytypism and polytypic unification
This report describes what polytypic programming is, a new system for writing polytypic functions, and a number of useful example functions including generalised versions of map, zip and a specific
Polytypic Programming
TLDR
This paper introduces polytypic functions, and shows how to construct and reason about polyTYpic functions.
PolyP—a polytypic programming language extension
TLDR
This paper extends a functional language with a construct for writing polytypic functions, and infers the types of all other expressions using an extension of Jones' theories of qualified types and higher-order polymorphism.
Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space)
TLDR
This work presents an alternative construction, which replaces the stringent requirement that an inverse anamorphism be defined for each catamorphism with a more lenient restriction, and has a more efficient implementation than that of Paterson, Meijer, and Hutton.
Generic Functional Programming with Types and Relations
TLDR
The purpose of this paper is to explore the possibility of deriving generic programs by recasting part of the theory of lists that deals with segments as a theory about ‘segments’ in a wide class of datatypes and then used to pose and solve a generic version of a well-known problem.
The Design of a Pretty-printing Library
In this chapter we have considered the design of combinator libraries. We saw how studying the algebraic properties of the combinators desired can both help to suggest natural choices of
Monadic Maps and Folds for Arbitrary Datatypes
Each datatype constructor comes equiped not only with a so-called map and fold ( catamorphism ), as is widely known, but, under some condition, also with a kind of map and fold that are related to an
The Calculation of a Polytypic Parser
TLDR
It is shown how inverses can be used to calculate a parser and it is possible to prove the equality of these two parsers, which means that this parser is correct too.
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
TLDR
A calculus for lazy functional programming based on recursion operators associated with data type definitions is developed and it is shown that all example functions in Bird and Wadler's Introduction to Functional Programming can be expressed using these operators.
Bananas in space: extending fold and unfold to exponential types
TLDR
This paper explains how Freyd’s work on modelling recursive datatypes as fixed points of difunctors shows how to generalise fold and unfold from polynomial dat atypes to those involving exponentials.
...
...