{-# LANGUAGE NoImplicitPrelude #-}
module Headroom.HeaderFn.Types
( HeaderFn(..)
)
where
import RIO
newtype env = (Text -> Reader env Text)
instance Semigroup (HeaderFn env) where
HeaderFn Text -> Reader env Text
fnX <> :: HeaderFn env -> HeaderFn env -> HeaderFn env
<> HeaderFn Text -> Reader env Text
fnY = (Text -> Reader env Text) -> HeaderFn env
forall env. (Text -> Reader env Text) -> HeaderFn env
HeaderFn ((Text -> Reader env Text) -> HeaderFn env)
-> (Text -> Reader env Text) -> HeaderFn env
forall a b. (a -> b) -> a -> b
$ Text -> Reader env Text
fnX (Text -> Reader env Text)
-> (Text -> Reader env Text) -> Text -> Reader env Text
forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> Text -> Reader env Text
fnY
instance Monoid (HeaderFn env) where
mempty :: HeaderFn env
mempty = (Text -> Reader env Text) -> HeaderFn env
forall env. (Text -> Reader env Text) -> HeaderFn env
HeaderFn ((Text -> Reader env Text) -> HeaderFn env)
-> (Text -> Reader env Text) -> HeaderFn env
forall a b. (a -> b) -> a -> b
$ \Text
input -> Text -> Reader env Text
forall (f :: * -> *) a. Applicative f => a -> f a
pure Text
input