Skip to main content
    • Aa
    • Aa

Programming with ornaments


Dependently typed programming advocates the use of various indexed versions of the same shape of data, but the formal relationship amongst these structurally similar datatypes usually needs to be established manually and tediously. Ornaments have been proposed as a formal mechanism to manage the relationships between such datatype variants. In this paper, we conduct a case study under an ornament framework; the case study concerns programming binomial heaps and their operations — including insertion and minimum extraction — by viewing them as lifted versions of binary numbers and numeric operations. We show how current dependently typed programming technology can lead to a clean treatment of the binomial heap constraints when implementing heap operations. We also identify some gaps between the current technology and an ideal dependently typed programming language that we would wish to have for our development.

Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

A. Bove & P. Dybjer (2009) Dependent types at work. In Language Engineering and Rigorous Software Development, Ana Bove, Luís Soares Barbosa, Alberto Pardo, and Jorge Sousa Pinto (eds), Lecture Notes in Computer Science, vol. 5520. Berlin, Germany: Springer-Verlag, pp. 5799.

P.-É. Dagand & C. McBride (2014) Transporting functions across ornaments. J. Funct. Program. 24 (2–3), 316383.

P. Dybjer (1994) Inductive families. Form. Asp. Comput. 6 (4), 440465.

C. McBride & J. McKinna (2004) The view from the left. J. Funct. Program. 14 (1), 69111.

U. Norell (2009) Dependently typed programming in Agda. In Advanced Functional Programming, Pieter Koopman , Rinus Plasmeijer , and Doaitse Swierstra (eds), Lecture Notes in Computer Science, vol. 5832. Berlin, Germany: Springer-Verlag, pp. 230266.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
Type Description Title
Supplementary Materials

Ko and Gibbons supplementary material
Ko and Gibbons supplementary material 1

 Unknown (9 KB)
9 KB


Full text views

Total number of HTML views: 0
Total number of PDF views: 67 *
Loading metrics...

Abstract views

Total abstract views: 501 *
Loading metrics...

* Views captured on Cambridge Core between 12th December 2016 - 24th June 2017. This data will be updated every 24 hours.