0 | module Control.Lens.Optic
3 | import Data.Profunctor
9 | Simple : (k -> k -> k' -> k' -> r) -> k -> k' -> r
10 | Simple f s a = f s s a a
14 | Optic' : (p : Type -> Type -> Type) -> (s,t,a,b : Type) -> Type
15 | Optic' p s t a b = p a b -> p s t
18 | 0 Optic : ((Type -> Type -> Type) -> Type) -> (s,t,a,b : Type) -> Type
19 | Optic constr s t a b = forall p. constr p => Optic' p s t a b