I have recently come up with a new way of representing functional references. As you might recall, functional references (also called lenses) are like a pointer into a field of some data structure. The value of this field can be extracted and modified. For example: GHCi> get fstF (123,"hey") 123 GHCi> set fstF 456 (123,"hey") (456,"hey") GHCi> modify fstF (*2) (123,"hey") (246,"hey") where fstF is