Monoid Structures on Indexed Containers
By: Michele De Pascalis, Tarmo Uustalu, Niccolò Veltrì
Potential Business Impact:
Makes computer programs more organized and powerful.
Containers represent a wide class of type constructions relevant for functional programming and (co)inductive reasoning. Indexed containers generalize this notion to better fit the scope of dependently typed programming. When interpreting types to be sets, a container describes an endofunctor on the category of sets while an I-indexed container describes an endofunctor on the category Set^I of I-indexed families of sets. We consider the monoidal structure on the category of I-indexed containers whose tensor product of containers describes the composition of the respective induced endofunctors. We then give a combinatorial characterization of monoids in this monoidal category, and we show how these monoids correspond precisely to monads on the induced endofunctors on Set^I. Lastly, we conclude by presenting some examples of monads on Set^I that fall under our characterization, including the product of two monads, indexed variants of the state and the writer monads and an example of a free monad. The technical results of this work are accompanied by a formalization in the proof assistant Cubical Agda.
Similar Papers
Distributive Laws of Monadic Containers
Logic in Computer Science
Helps computer programs combine in new ways.
Between Markov and restriction: Two more monads on categories for relations
Logic in Computer Science
Organizes math ideas about how things connect.
Functoriality of Enriched Data Types
Category Theory
Makes computer programs handle changing data better.