As a layman I would describe them as implicits like in current Scala [0] but better (easier to reason about). One thing which they allow is ad-hoc polymorphism like typeclasses.
https://arxiv.org/pdf/1512.01895.pdf
https://old.reddit.com/r/ocaml/comments/4qan0w/modular_type_...