Saved in:
Bibliographic Details
Main Author: Abel, Andreas
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2401.14286
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866909082936410112
author Abel, Andreas
author_facet Abel, Andreas
contents McBride and Paterson introduced Applicative functors to Haskell, which are equivalent to the lax monoidal functors (with strength) of category theory. Applicative functors F are presented via idiomatic application $\_\circledast\_ : F (A \to B) \to F A \to F B$ and laws that are a bit hard to remember. Capriotti and Kaposi observed that applicative functors can be conceived as multifunctors, i.e., by a family liftA$_n$ : $(A_1 \to ... \to A_n \to C) \to F A_1 \to ... \to F A_n \to F C$ of zipWith-like functions that generalize pure $(n=0)$, fmap $(n=1)$ and liftA2 $(n=2)$. This reduces the associated laws to just the first functor law and a uniform scheme of second (multi)functor laws, i.e., a composition law for liftA. In this note, we rigorously prove that applicative functors are in fact equivalent to multifunctors, by interderiving their laws.
format Preprint
id arxiv_https___arxiv_org_abs_2401_14286
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Equivalence of Applicative Functors and Multifunctors
Abel, Andreas
Programming Languages
Logic in Computer Science
68N18
D.1.1
McBride and Paterson introduced Applicative functors to Haskell, which are equivalent to the lax monoidal functors (with strength) of category theory. Applicative functors F are presented via idiomatic application $\_\circledast\_ : F (A \to B) \to F A \to F B$ and laws that are a bit hard to remember. Capriotti and Kaposi observed that applicative functors can be conceived as multifunctors, i.e., by a family liftA$_n$ : $(A_1 \to ... \to A_n \to C) \to F A_1 \to ... \to F A_n \to F C$ of zipWith-like functions that generalize pure $(n=0)$, fmap $(n=1)$ and liftA2 $(n=2)$. This reduces the associated laws to just the first functor law and a uniform scheme of second (multi)functor laws, i.e., a composition law for liftA. In this note, we rigorously prove that applicative functors are in fact equivalent to multifunctors, by interderiving their laws.
title Equivalence of Applicative Functors and Multifunctors
topic Programming Languages
Logic in Computer Science
68N18
D.1.1
url https://arxiv.org/abs/2401.14286