-- | Application configuration and top-level 'RIO' helpers module Network.IPFS.Config ( get ) where import RIO import Data.Has -- $setup -- -- >>> import RIO -- >>> import Data.Has -- >>> -- >>> :set -XBlockArguments -- >>> :set -XMultiParamTypeClasses -- >>> :set -XOverloadedStrings -- | Get a value from the reader config -- -- >>> data Field = Field Text -- >>> data Cfg = Cfg Field -- >>> -- >>> instance Has Field Cfg where hasLens = \f (Cfg field) -> Cfg <$> f field -- >>> -- >>> :{ -- >>> runRIO (Cfg $ Field "hello world") do -- >>> Field txt <- get -- >>> return txt -- >>> :} -- "hello world" get :: (MonadReader cfg m, Has a cfg) => m a get = view hasLens