module Yesod.Core.Lens ( envL , siteL ) where import Freckle.App.Prelude import Control.Lens (Lens', lens) import Yesod.Core.Types (HandlerData, RunHandlerEnv, handlerEnv, rheSite) envL :: Lens' (HandlerData child site) (RunHandlerEnv child site) envL :: (RunHandlerEnv child site -> f (RunHandlerEnv child site)) -> HandlerData child site -> f (HandlerData child site) envL = (HandlerData child site -> RunHandlerEnv child site) -> (HandlerData child site -> RunHandlerEnv child site -> HandlerData child site) -> Lens (HandlerData child site) (HandlerData child site) (RunHandlerEnv child site) (RunHandlerEnv child site) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens HandlerData child site -> RunHandlerEnv child site forall child site. HandlerData child site -> RunHandlerEnv child site handlerEnv ((HandlerData child site -> RunHandlerEnv child site -> HandlerData child site) -> Lens (HandlerData child site) (HandlerData child site) (RunHandlerEnv child site) (RunHandlerEnv child site)) -> (HandlerData child site -> RunHandlerEnv child site -> HandlerData child site) -> Lens (HandlerData child site) (HandlerData child site) (RunHandlerEnv child site) (RunHandlerEnv child site) forall a b. (a -> b) -> a -> b $ \HandlerData child site x RunHandlerEnv child site y -> HandlerData child site x { handlerEnv :: RunHandlerEnv child site handlerEnv = RunHandlerEnv child site y } siteL :: Lens' (RunHandlerEnv child site) site siteL :: (site -> f site) -> RunHandlerEnv child site -> f (RunHandlerEnv child site) siteL = (RunHandlerEnv child site -> site) -> (RunHandlerEnv child site -> site -> RunHandlerEnv child site) -> Lens (RunHandlerEnv child site) (RunHandlerEnv child site) site site forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens RunHandlerEnv child site -> site forall child site. RunHandlerEnv child site -> site rheSite ((RunHandlerEnv child site -> site -> RunHandlerEnv child site) -> Lens (RunHandlerEnv child site) (RunHandlerEnv child site) site site) -> (RunHandlerEnv child site -> site -> RunHandlerEnv child site) -> Lens (RunHandlerEnv child site) (RunHandlerEnv child site) site site forall a b. (a -> b) -> a -> b $ \RunHandlerEnv child site x site y -> RunHandlerEnv child site x { rheSite :: site rheSite = site y }