{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
module Dep.Value (
       -- * A provider of values.

        Value (..)
    ) where
import GHC.Generics qualified as G

-- | Typically injected into program logic using "Dep.Has.Has".

newtype Value v m = Value { 
        Value v m -> m v
value :: m v 
    } deriving (forall x. Value v m -> Rep (Value v m) x)
-> (forall x. Rep (Value v m) x -> Value v m)
-> Generic (Value v m)
forall x. Rep (Value v m) x -> Value v m
forall x. Value v m -> Rep (Value v m) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall v (m :: * -> *) x. Rep (Value v m) x -> Value v m
forall v (m :: * -> *) x. Value v m -> Rep (Value v m) x
$cto :: forall v (m :: * -> *) x. Rep (Value v m) x -> Value v m
$cfrom :: forall v (m :: * -> *) x. Value v m -> Rep (Value v m) x
G.Generic