{-# LANGUAGE TemplateHaskell #-} module Data.YQL.Y ( Y(..) , cache , context , crypto ) where import Control.Lens (Lens', lens) import Data.YQL.Cache (Cache) import Data.YQL.Context (Context) import Data.YQL.Crypto (Crypto) data Y = Y { yCache :: Cache , yContext :: Context , yCrypto :: Crypto } cache :: Lens' Y Cache cache = lens yCache (\y c -> y { yCache = c }) context :: Lens' Y Context context = lens yContext (\y c -> y { yContext = c }) crypto :: Lens' Y Crypto crypto = lens yCrypto (\y c -> y { yCrypto = c })