Implicit Progamming (IP) mechanisms infer values by a type-directed resolution process, making programs more compact and easier to read. Examples of IP mechanisms include Haskell's type classes, Scala's implicits, Agda's instance arguments, Coq's type classes, and Rust's traits. The design of IP mechanisms has led to heated debate: proponents of one school argue the desirability of coherence, ensuring each implicit has a unique resolution; while proponents of another school argue for the power and flexibility of local scoping or overlapping instances. The current state-of-affairs seems to indicate the two goals are at odds with one another, and cannot easily be reconciled. This paper presents Cochis, the Calculus Of CoHerent ImplicitS, an...