26 citations · 45 across the 11 of their papers we have counts for
11 papers
Unboxed data constructors -- or, how cpp decides a halting problem
Nicolas Chataing, Stephen Dolan, Gabriel Scherer +1
We propose a new language feature for ML-family languages, the ability to selectively unbox certain data constructors, so that their runtime representation gets compiled away to ju…
Frex: dependently-typed algebraic simplification
Guillaume Allais, Edwin Brady, Nathan Corbyn +2
We present a new design for an algebraic simplification library structured around concepts from universal algebra: theories, models, homomorphisms, and universal properties of free…
flap: A Deterministic Parser with Fused Lexing
Jeremy Yallop, Ningning Xie, Neel Krishnaswami
Lexers and parsers are typically defined separately and connected by a token stream. This separate definition is important for modularity and reduces the potential for parsing ambi…
Defunctionalization with Dependent Types
Yulong Huang, Jeremy Yallop
The defunctionalization translation that eliminates higher-order functions from programs forms a key part of many compilers. However, defunctionalization for dependently-typed lang…
let (rec) insertion without Effects, Lights or Magic
Oleg Kiselyov, Jeremy Yallop
Let insertion in program generation is producing code with definitions (let-statements). Although definitions precede uses in generated code, during code generation `uses' come fir…
First-Class Subtypes
Jeremy Yallop, Stephen Dolan
First class type equalities, in the form of generalized algebraic data types (GADTs), are commonly found in functional programs. However, first-class representations of other relat…
Extending OCaml's 'open'
Runhang Li, Jeremy Yallop
We propose a harmonious extension of OCaml's 'open' construct. OCaml's existing construct 'open M' imports the names exported by the module 'M' into the current scope. At present '…
Programming Unikernels in the Large via Functor Driven Development
Gabriel Radanne, Thomas Gazagnaire, Anil Madhavapeddy +5
Compiling applications as unikernels allows them to be tailored to diverse execution environments. Dependency on a monolithic operating system is replaced with linkage against libr…
A Practical Mode System for Recursive Definitions
Alban Reynaud, Gabriel Scherer, Jeremy Yallop
In call-by-value languages, some mutually-recursive value definitions can be safely evaluated to build recursive functions or cyclic data structures, but some definitions (let rec…
Proceedings ML Family / OCaml Users and Developers workshops
Jeremy Yallop, Damien Doligez
This volume contains the joint post-proceedings of the 2015 edition of the ML Family Workshop and OCaml Users and Developers Workshop, held in Vancouver, British Columbia, Canada,…
Modular implicits
Leo White, Frédéric Bour, Jeremy Yallop
We present modular implicits, an extension to the OCaml language for ad-hoc polymorphism inspired by Scala implicits and modular type classes. Modular implicits are based on type-d…