This library is a port of Haskell's lens. The goal is to provide functional lenses, isomorphisms, getters and setters.
import lenz._
import scalaz.std.function._
import scalaz.Id.Id
case class MyString(s: String)
val myStringIso = iso((_: MyString).s)(MyString)
val myHelloWorld = MyString("Hello") & myStringIso[=>:, Id] %~ (_ + " world")
// myHelloWorld: MyString = MyString(Hello world)
import lenz._
val my = ("My", "world") ^\ (_1: Lens$[(String, String), String]).const[String]
// my: String = My
import lenz._
import scalaz.Id.Id
val helloWorld = ("My", "world") & (_1: Lens$[(String, String), String]).id \~ "Hello"
// helloWorld: (String, String) = (Hello,world)