@@ -151,24 +151,9 @@ ravel coy f s = inj $ coy (\a -> proj (f a)) s
151151
152152-- Pull dimaps to left and rights to right
153153
154−newtype MergeRight p a b = MergeRight (PrismBoggle p a b)
155−{-
156−instance Choice p => Profunctor (MergeRight p) where
157− dimap f g (MergeRight (Dirty pab)) = MergeRight (DMap f g pab)
158− dimap f g (MergeRight (DMap f' g' pab)) = MergeRight (DMap (f' . f) (g . g') pab)
159− dimap f g (MergeRight (DRight pab)) = MergeRight (DMap f g (right' pab))
160−
161−instance Choice p => Choice (MergeRight p) where
162− right' (MergeRight (Dirty pab)) = MergeRight (DRight pab)
163− right' (MergeRight (DMap f g pab)) = MergeRight (DMap (fmap f) (fmap g) (right' pab))
164− right' (MergeRight (DRight pab)) = MergeRight (DMap assoc' assoc (right' pab))
165− -}
166−
167154data PrismBoggle p a b where
168− DRight :: Bool -> (p x y) -> PrismBoggle p (Either z x) (Either z y)
155+ DRight :: (p x y) -> PrismBoggle p (Either z x) (Either z y)
169156 DMap :: (c -> a) -> (b -> d) -> (p a b) -> PrismBoggle p c d
170− --DAssoc :: p (Either (Either a b) c) (Either (Either a b) c) -> PrismBoggle p (Either a (Either b c)) (Either a (Either b c))
171−-- DAssoc :: p (Either a (Either b c)) (Either a (Either b c)) -> PrismBoggle p (Either (Either a b)c) (Either (Either a b) c)
172157 Dirty :: p a b -> PrismBoggle p a b
173158
174159instance Choice p => Profunctor (PrismBoggle p) where