How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
The undecidability of the semi-unification problem
Information and Computation
Type reconstruction in the presence of polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algebra of programming
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From fast exponentiation to square matrices: an adventure in types
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Type classes with more higher-order polymorphism
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
The dual of substitution is redecoration
Trends in functional programming
LEAP: A Language with Eval And Polymorphism
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
Generic Programming within Dependently Typed Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Logical Relations and Inductive/Coinductive Types
Proceedings of the 12th International Workshop on Computer Science Logic
MPC '98 Proceedings of the Mathematics of Program Construction
A Typed Lambda Calculus with Categorical Type Constructors
Category Theory and Computer Science
Higher-Order Intensional Type Analysis
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
MLF: raising ML to the power of system F
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
The Girard--Reynolds isomorphism
Information and Computation - TACS 2001
Generic Programming: Advanced Lectures
Generic Programming: Advanced Lectures
Generalizing generalized tries
Journal of Functional Programming
Faking it Simulating dependent types in Haskell
Journal of Functional Programming
Journal of Functional Programming
Journal of Functional Programming
Red-black trees in a functional setting
Journal of Functional Programming
de Bruijn notation as a nested datatype
Journal of Functional Programming
Science of Computer Programming - Special issue on mathematics of program construction (MPC 2002)
Disciplined, efficient, generalised folds for nested datatypes
Formal Aspects of Computing
Distinguishing data structures and functions: the constructor calculus and functorial types
TLCA'01 Proceedings of the 5th international conference on Typed lambda calculi and applications
Generalized iteration and coiteration for higher-order nested datatypes
FOSSACS'03/ETAPS'03 Proceedings of the 6th International conference on Foundations of Software Science and Computation Structures and joint European conference on Theory and practice of software
(Co-) iteration for higher-order nested datatypes
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Polytypic programming in haskell
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
Explicit substitutions and higher-order syntax
Higher-Order and Symbolic Computation
Recursion on Nested Datatypes in Dependent Type Theory
CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Type-based termination of generic programs
Science of Computer Programming
An induction principle for nested datatypes in intensional type theory
Journal of Functional Programming
Some Remarks on Type Systems for Course-of-value Recursion
Electronic Notes in Theoretical Computer Science (ENTCS)
A principled approach to programming with nested types in Haskell
Higher-Order and Symbolic Computation
Initial algebra semantics is enough!
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Mixed inductive/coinductive types and strong normalization
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
Verification of the redecoration algorithm for triangular matrices
TYPES'07 Proceedings of the 2007 international conference on Types for proofs and programs
From coinductive proofs to exact real arithmetic
CSL'09/EACSL'09 Proceedings of the 23rd CSL international conference and 18th EACSL Annual conference on Computer science logic
Adjoint folds and unfolds: or: scything through the thicket of morphisms
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Map fusion for nested datatypes in intensional type theory
Science of Computer Programming
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
A foundation for GADTs and inductive families: dependent polynomial functor approach
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Polarized subtyping for sized types
CSR'06 Proceedings of the First international computer science conference on Theory and Applications
Towards generic programming with sized types
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
A datastructure for iterated powers
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Implementing a normalizer using sized heterogeneous types
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
Verification of programs on truly nested datatypes in intensional type theory
MSFP'06 Proceedings of the 2006 international conference on Mathematically Structured Functional Programming
Subtyping by folding an inductive relation into a coinductive one
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Adjoint folds and unfolds-An extended study
Science of Computer Programming
Hi-index | 0.00 |
This article studies the implementation of inductive and coinductive constructors of higher kinds (higher-order nested datatypes) in typed term rewriting, with emphasis on the choice of the iteration and coiteration constructions to support as primitive. We propose and compare several well-behaved extensions of System Fω with some form of iteration and coiteration uniform in all kinds. In what we call Mendler-style systems, the iterator and coiterator have a computational behavior similar to the general recursor, but their types guarantee termination. In conventional-style systems, monotonicity witnesses are used for a notion of monotonicity defined uniformly for all kinds. Our most expressive systems GMItω and GItω of generalized Mendler, resp. conventional (co)iteration encompass Martin, Gibbons and Bailey's efficient folds for rank-2 inductive types. Strong normalization of all systems considered is proved by providing an embedding of the basic Mendler-style system MItω into System Fω