Monocle is an optics library for Scala (and Scala.js) strongly inspired by Haskell Lens. Optics are a group of purely functional abstractions to manipulate (get, set, modify, …) immutable objects. Getting started Monocle is published to Maven Central and cross-built for Scala 2.12 and 2.13 so you can just add the following to your build: val monocleVersion = "2.0.0" // depends on cats 2.x libraryD