Conference Papers Year : 2021

Isomorphisms are back!

Abstract

Sometimes, we need a function so deeply that we have to go out and search for it. How do we find it ? Sometimes, we have clues: a function which manipulates list is probably in the Listmodule. . . but not always! Sometimes, all we have is its functionality: doing the sum of a list of integers. Unfortunately, search by functionality is difficult. Rittri [1] proposed an approximation: use the type of the function as a key to search through libraries: in our case, int list->int. To avoid stumbling over details such as the order of arguments, he proposed to use matching modulo type isomorphism – a notion broader than syntactic equality. Unfortunately, algorithms for unification modulo type isomorphisms are extremely costly. Doing an exhaustive search over the whole ML ecosystem was possible at the time (with a standard library of 294 functions), but is certainly not possible anymore for the OCaml ecosystem, with 3259 opam packages, each containing several hundreds or thousands of functions.
Fichier principal
Vignette du fichier
mlworkshop.pdf (114.81 Ko) Télécharger le fichier
Origin Files produced by the author(s)

Dates and versions

hal-03355381 , version 1 (27-09-2021)

Identifiers

  • HAL Id : hal-03355381 , version 1

Cite

Clément Allain, Gabriel Radanne, Laure Gonnord. Isomorphisms are back!. ML 2021 - ML Workshop, Aug 2021, Virtual, France. pp.1-3. ⟨hal-03355381⟩
284 View
154 Download

Share

More