Profunctor optics, a categorical update
Optics are bidirectional data accessors that capture data transformation patterns such as
accessing subfields or iterating over containers. Profunctor optics are a particular choice of …
accessing subfields or iterating over containers. Profunctor optics are a particular choice of …
Type Inference Logics
Type inference is essential for statically-typed languages such as OCaml and Haskell. It can
be decomposed into two (possibly interleaved) phases: a generator converts programs to …
be decomposed into two (possibly interleaved) phases: a generator converts programs to …
Notions of computation as monoids
E Rivas, M Jaskelioff - Journal of functional programming, 2017 - cambridge.org
There are different notions of computation, the most popular being monads, applicative
functors, and arrows. In this article, we show that these three notions can be seen as …
functors, and arrows. In this article, we show that these three notions can be seen as …
Profunctor optics and traversals
M Román - arXiv preprint arXiv:2001.08045, 2020 - arxiv.org
Optics are bidirectional accessors of data structures; they provide a powerful abstraction of
many common data transformations. This abstraction is compositional thanks to a …
many common data transformations. This abstraction is compositional thanks to a …
A representation theorem for second-order functionals
M Jaskelioff, R O'connor - Journal of functional programming, 2015 - cambridge.org
Representation theorems relate seemingly complex objects to concrete, more tractable
ones. In this paper, we take advantage of the abstraction power of category theory and …
ones. In this paper, we take advantage of the abstraction power of category theory and …
Needle & Knot: Binder boilerplate tied up
To lighten the burden of programming language mechanization, many approaches have
been developed that tackle the substantial boilerplate which arises from variable binders …
been developed that tackle the substantial boilerplate which arises from variable binders …
Tealeaves: Structured Monads for Generic First-Order Abstract Syntax Infrastructure
L Dunn, V Tannen, S Zdancewic - 14th International Conference …, 2023 - drops.dagstuhl.de
Verifying the metatheory of a formal system in Coq involves a lot of tedious" infrastructural"
reasoning about variable binders. We present Tealeaves, a generic framework for first-order …
reasoning about variable binders. We present Tealeaves, a generic framework for first-order …
Understanding idiomatic traversals backwards and forwards
R Bird, J Gibbons, S Mehner, J Voigtländer… - Proceedings of the …, 2013 - dl.acm.org
We present new ways of reasoning about a particular class of effectful Haskell programs,
namely those expressed as idiomatic traversals. Starting out with a specific problem about …
namely those expressed as idiomatic traversals. Starting out with a specific problem about …
System F-omega with equirecursive types for datatype-generic programming
Y Cai, PG Giarrusso, K Ostermann - … of the 43rd Annual ACM SIGPLAN …, 2016 - dl.acm.org
Traversing an algebraic datatype by hand requires boilerplate code which duplicates the
structure of the datatype. Datatype-generic programming (DGP) aims to eliminate such …
structure of the datatype. Datatype-generic programming (DGP) aims to eliminate such …
Breadth-First Traversal via Staging
An effectful traversal of a data structure iterates over every element, in some predetermined
order, collecting computational effects in the process. Depth-first effectful traversal of a tree is …
order, collecting computational effects in the process. Depth-first effectful traversal of a tree is …