1. van Laarhoven, они же кметовские - на траверсалах, в которых с помощью констрейнтов выводится желаемое поведение (Functor - линза, аппликатив - траверсал, профунктор вместо стрелки - призма). Это самая популярная реализация, можно найти в lens
2. профункторные
3. рекорды из { [get], [set], [toList], ... }