provide-0.1.0.0: Lightweight dependency injection / namespaced+typed implicit-ish arguments
Safe HaskellNone
LanguageHaskell2010

Control.Provide.ARec

Documentation

data ARecProvider (tctx :: k) (recVal :: k1) Source #

Instances

Instances details
(Reifies recVal (ARec (ProviderField tctx) items), RecElem (ARec :: (Type -> Type) -> [Type] -> Type) key key items items (RIndex key items)) => Provides (ARecProvider tctx recVal) key Source # 
Instance details

Defined in Control.Provide.ARec

type ProviderTypeContext (ARecProvider tctx recVal) Source # 
Instance details

Defined in Control.Provide.ARec

type ProviderTypeContext (ARecProvider tctx recVal) = tctx

newtype ProviderField tctx key Source #

Constructors

ProviderField 

Fields

provideARec :: forall tctx (items :: [Type]) r. (NatToInt (RLength items), ToARec items) => Rec (ProviderField tctx) items -> (forall recVal. Reifies recVal (ARec (ProviderField tctx) items) => Proxy (ARecProvider tctx recVal) -> r) -> r Source #