packages feed

lens-family-th-0.5.0.1: examples/test.lhs

To see the results of these ghci interactions on your own machine, run:

    [bash]
    BlogLiterately -g examples/test.lhs > test.html && firefox test.html

> {-# LANGUAGE TemplateHaskell #-}

> import Lens.Family2
> import Lens.Family2.TH

> data Pair a b = Pair { _pairL :: a, _pairR :: b }
>               deriving (Eq, Show, Read, Ord)
> $(makeLenses ''Pair)

    [ghci]
    let p = Pair '1' 1 :: Pair Char Int
    p ^. pairL
    p ^. pairR
    :m +Data.Char
    (pairL %~ digitToInt) p
    (pairR %~ intToDigit) p
    (pairL .~ "foo") p
    (pairR .~ "bar") p