Proton.Glass
type Glass s t a b = forall p. (Strong p, Closed p) => Optic p s t a b Source #
type Glass' s a = Glass s s a a Source #
type Glassed p = (Strong p, Closed p) Source #
glassed :: (Strong p, Closed p) => p a b -> p (s, u -> a) (s, u -> b) Source #
glass :: forall p s t a b. Glassed p => (((s -> a) -> b) -> s -> t) -> p a b -> p s t Source #
glassList :: forall a b. Glass [a] [b] a b Source #
extendOf :: Comonad w => Optic (Costar w) s t a b -> (w a -> b) -> w s -> w t Source #
traversed' :: forall f a b. Traversable f => Glass (f a) (f b) a b Source #