Abstract
Monads are commonplace in computer science, and can be composed using Beck's
distributive laws. Unfortunately, finding distributive laws can be extremely
difficult and error-prone. The literature contains some general principles for
constructing distributive laws. However, until now there have been no such
techniques for establishing when no distributive law exists.
We present three families of theorems for showing when there can be no
distributive law between two monads. The first widely generalizes a
counterexample attributed to Plotkin. It covers all the previous known no-go
results for specific pairs of monads, and includes many new results. The second
and third families are entirely novel, encompassing various new practical
situations. For example, they negatively resolve the open question of whether
the list monad distributes over itself, reveal a previously unobserved error in
the literature, and confirm a conjecture made by Beck himself in his first
paper on distributive laws. In addition, we establish conditions under which
there can be at most one possible distributive law between two monads, proving
various known distributive laws to be unique.
Publisher
Centre pour la Communication Scientifique Directe (CCSD)
Subject
General Computer Science,Theoretical Computer Science
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献