packages feed

mdoc-0.1.0.0: src/Mdoc/Optics.hs

-- |
--
-- Module      : Mdoc.Optics
-- Copyright   : (c) 2026 Patrick Brisbin
-- License     : AGPL-3
-- Maintainer  : pbrisbin@gmail.com
-- Stability   : experimental
-- Portability : POSIX
module Mdoc.Optics
  ( field

    -- * Application
  , (%)
  , traversed

    -- * Access
  , (^.)

    -- * Updates
  , (.~)
  , (?~)
  , (%~)
  , (<>~)

    -- * Construction
  , Prism'
  , prism
  ) where

import Prelude

import Data.Generics.Product.Fields
import Optics

(<>~) :: Semigroup b => Lens' a b -> b -> a -> a
l <>~ w = l %~ (<> w)