endo-0.2.0.1: example/Example/Config/Lens.hs
{-# LANGUAGE NoImplicitPrelude #-}
-- |
-- Module: $HEADER$
-- Description: Simple setters for Config data type.
-- Copyright: (c) 2013-2015, Peter Trško
-- License: BSD3
--
-- Maintainer: peter.trsko@gmail.com
-- Stability: experimental
-- Portability: NoImplicitPrelude
--
-- Simple setters for 'Config' data type. Definitions from this package are
-- used in other examples.
module Example.Config.Lens
( outputFile
, verbosity
)
where
import System.IO (FilePath)
import Control.Lens (Lens')
import Data.Function.Between ((~@@^>))
import Example.Config (Config(..), Verbosity)
verbosity :: Lens' Config Verbosity
verbosity = _verbosity ~@@^> \s b -> s{_verbosity = b}
outputFile :: Lens' Config FilePath
outputFile = _outputFile ~@@^> \s b -> s{_outputFile = b}