lens-misc-0.0.2.0: Miscellaneous lens utilities.

Safe HaskellSafe
LanguageHaskell2010

Control.Lens.Misc.TH

Synopsis

Documentation

over' :: ASetter' s a -> (a -> a) -> s -> s Source #

type restricted version of over

makeClassy_' :: Name -> DecsQ Source #

Make lenses and traversals for a type, and create a class when the type has no arguments. Works the same as makeClassy_ except that the resulting *classy* lens is also prefixed with an underscore.

makeLenses_ :: Name -> DecsQ Source #

Build lenses (and traversals) with a sensible default configuration. Works the same as makeLenses except that the resulting lens is also prefixed with an underscore.

e.g.

data FooBar
  = Foo { x, y :: Int }
  | Bar { x :: Int }
makeLenses ''FooBar

will create

_x :: Lens' FooBar Int
_x f (Foo a b) = (\a' -> Foo a' b) <$> f a
_x f (Bar a)   = Bar <$> f a
_y :: Traversal' FooBar Int
_y f (Foo a b) = (\b' -> Foo a  b') <$> f b
_y _ c@(Bar _) = pure c
makeLenses_ = makeLensesWith lensRules_