{-# LANGUAGE TypeFamilies #-} module Data.Lens.Edit.Stateful where import Data.Lens.Bidirectional class Bidirectional l => Lens l where type C l missing :: l -> C l dputr :: l -> (L l, C l) -> (R l, C l) dputl :: l -> (R l, C l) -> (L l, C l)