Lenses are a beautiful functional abstraction that subsume the getters and setters of object languages like Ruby and Java - without relying on mutable data. This is important, because mutable data impedes reuse and is a key cause of complexity and bugs. Lenses are highly relevant to Clojure development, because they bridge the gap between the immutable data structures that functional programming provides and convenient access for getting things done. One challenge with implementing Lenses for Clojure is that they have traditionally been used in languages with strong type systems like Haskell. In this talk, I will reflect upon the lessons learned porting concepts originally framed in terms of types to a dynamic language like Clojure.