-- | This package provides some stock lenses for manipulating multiple elements -- of a tuple at once. For instance: -- -- >>> (1,2,3)^._13 -- (1, 3) -- -- The package provide all lenses that are in increasing order, for FieldN classes 1-9. If you -- want to swap the order or permute the elements, you need to make your own. -- -- Custom combos are provided by a Template Haskell function. -- -- >>> ('a','b','c','d') ^. $(tl [4,1,2,3]) -- ('d','a','b','c') {-# LANGUAGE TemplateHaskell, QuasiQuotes, NoMonomorphismRestriction, ExtendedDefaultRules, NoDatatypeContexts, NondecreasingIndentation #-} module Data.Tuple.Lens ( -- *** Template function for generating custom disjoint lens expressions makeTuples, makeManyTuples, tl, -- ** Generated combos module Data.Tuple.Lens.Generated ) where import Data.Tuple.Lens.Generated import Data.Tuple.Lens.TH (tl, makeTuples, makeManyTuples)