{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ImplicitPrelude #-}
module PlutusLedgerApi.Test.ScriptContextBuilder.Lenses
( scriptContextTxInfoL
, scriptContextRedeemerL
, scriptContextScriptInfoL
, txInfoInputsL
, txInfoMintL
, txInfoSignatoriesL
, txInfoOutputsL
, txInfoValidRangeL
, txInfoRedeemersL
, txInfoRedeemersAssocL
, txInfoFeeL
, txInfoWdrlL
, txInfoVotesL
, txInfoTxCertsL
, txInfoTreasuryDonationL
, txInfoReferenceInputsL
, txInfoProposalProceduresL
, txInfoIdL
, txInfoDataL
, txInfoCurrentTreasuryAmountL
, txInInfoOutRefL
, txInInfoResolvedL
, txOutRefIdL
, txOutRefIdxL
, txOutAddressL
, txOutValueL
, txOutDatumL
, txOutReferenceScriptL
, addressCredentialL
, addressStakingCredentialL
, mintValueMapL
, valueMapL
, ivFromL
, ivToL
, lowerBoundExtendedL
, lowerBoundClosureL
, upperBoundExtendedL
, upperBoundClosureL
, _NegInf
, _Finite
, _PosInf
, _NoOutputDatum
, _OutputDatumHash
, _OutputDatum
, _Datum
, _Redeemer
)
where
import Control.Lens qualified as L
import Data.List (sortBy)
import Data.Map (Map)
import Data.Map qualified as Map
import Data.Ord (comparing)
import PlutusLedgerApi.Test.ScriptContextBuilder.Lenses.TH (makeLensesWithL)
import PlutusLedgerApi.V1 qualified as PV1
import PlutusLedgerApi.V3
( OutputDatum
, ScriptContext
, TxInInfo
, TxInfo
, TxOut
, TxOutRef
)
import PlutusLedgerApi.V3 qualified as PV3
import PlutusLedgerApi.V3.MintValue
import PlutusTx.AssocMap qualified as AssocMap
import PlutusTx.Prelude qualified as PlutusTx
makeLensesWithL ''ScriptContext
L.makeLensesFor
[ ("txInfoInputs", "txInfoInputsL")
, ("txInfoMint", "txInfoMintL")
, ("txInfoSignatories", "txInfoSignatoriesL")
, ("txInfoOutputs", "txInfoOutputsL")
, ("txInfoValidRange", "txInfoValidRangeL")
, ("txInfoFee", "txInfoFeeL")
, ("txInfoWdrl", "txInfoWdrlL")
, ("txInfoVotes", "txInfoVotesL")
, ("txInfoTxCerts", "txInfoTxCertsL")
, ("txInfoTreasuryDonation", "txInfoTreasuryDonationL")
, ("txInfoReferenceInputs", "txInfoReferenceInputsL")
, ("txInfoProposalProcedures", "txInfoProposalProceduresL")
, ("txInfoId", "txInfoIdL")
, ("txInfoData", "txInfoDataL")
, ("txInfoCurrentTreasuryAmount", "txInfoCurrentTreasuryAmountL")
]
''TxInfo
makeLensesWithL ''TxInInfo
makeLensesWithL ''TxOutRef
makeLensesWithL ''TxOut
makeLensesWithL ''PV1.Address
L.makePrisms ''PV1.Credential
L.makePrisms ''PV1.StakingCredential
L.makePrisms ''OutputDatum
makeLensesWithL ''PV1.Interval
L.makePrisms ''PV1.Extended
_Datum :: forall a. (PV1.FromData a, PV1.ToData a) => L.Prism' PV1.Datum a
_Datum :: forall a. (FromData a, ToData a) => Prism' Datum a
_Datum = (a -> Datum) -> (Datum -> Maybe a) -> Prism Datum Datum a a
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
L.prism' a -> Datum
from Datum -> Maybe a
to
where
to :: PV1.Datum -> Maybe a
to :: Datum -> Maybe a
to = BuiltinData -> Maybe a
forall a. FromData a => BuiltinData -> Maybe a
PV1.fromBuiltinData (BuiltinData -> Maybe a)
-> (Datum -> BuiltinData) -> Datum -> Maybe a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Datum -> BuiltinData
PV1.getDatum
from :: a -> PV1.Datum
from :: a -> Datum
from = BuiltinData -> Datum
PV1.Datum (BuiltinData -> Datum) -> (a -> BuiltinData) -> a -> Datum
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> BuiltinData
forall a. ToData a => a -> BuiltinData
PV1.toBuiltinData
_Redeemer :: forall a. (PV1.FromData a, PV1.ToData a) => L.Prism' PV1.Redeemer a
_Redeemer :: forall a. (FromData a, ToData a) => Prism' Redeemer a
_Redeemer = (a -> Redeemer)
-> (Redeemer -> Maybe a) -> Prism Redeemer Redeemer a a
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
L.prism' a -> Redeemer
from Redeemer -> Maybe a
to
where
to :: PV1.Redeemer -> Maybe a
to :: Redeemer -> Maybe a
to = BuiltinData -> Maybe a
forall a. FromData a => BuiltinData -> Maybe a
PV1.fromBuiltinData (BuiltinData -> Maybe a)
-> (Redeemer -> BuiltinData) -> Redeemer -> Maybe a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Redeemer -> BuiltinData
PV1.getRedeemer
from :: a -> PV1.Redeemer
from :: a -> Redeemer
from = BuiltinData -> Redeemer
PV1.Redeemer (BuiltinData -> Redeemer) -> (a -> BuiltinData) -> a -> Redeemer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> BuiltinData
forall a. ToData a => a -> BuiltinData
PV1.toBuiltinData
txInfoRedeemersL :: L.Lens' PV3.TxInfo (Map PV3.ScriptPurpose PV3.Redeemer)
txInfoRedeemersL :: Lens' TxInfo (Map ScriptPurpose Redeemer)
txInfoRedeemersL = (TxInfo -> Map ScriptPurpose Redeemer)
-> (TxInfo -> Map ScriptPurpose Redeemer -> TxInfo)
-> Lens' TxInfo (Map ScriptPurpose Redeemer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens TxInfo -> Map ScriptPurpose Redeemer
getter TxInfo -> Map ScriptPurpose Redeemer -> TxInfo
setter
where
getter :: TxInfo -> Map ScriptPurpose Redeemer
getter TxInfo
txInfo = [(ScriptPurpose, Redeemer)] -> Map ScriptPurpose Redeemer
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ([(ScriptPurpose, Redeemer)] -> Map ScriptPurpose Redeemer)
-> [(ScriptPurpose, Redeemer)] -> Map ScriptPurpose Redeemer
forall a b. (a -> b) -> a -> b
$ Map ScriptPurpose Redeemer -> [(ScriptPurpose, Redeemer)]
forall k v. Map k v -> [(k, v)]
AssocMap.toList (Map ScriptPurpose Redeemer -> [(ScriptPurpose, Redeemer)])
-> Map ScriptPurpose Redeemer -> [(ScriptPurpose, Redeemer)]
forall a b. (a -> b) -> a -> b
$ TxInfo -> Map ScriptPurpose Redeemer
PV3.txInfoRedeemers TxInfo
txInfo
setter :: TxInfo -> Map ScriptPurpose Redeemer -> TxInfo
setter TxInfo
txInfo Map ScriptPurpose Redeemer
redeemerMap =
TxInfo
txInfo
{ PV3.txInfoRedeemers = AssocMap.unsafeFromList $ Map.toList redeemerMap
}
txInfoRedeemersAssocL :: L.Lens' PV3.TxInfo (AssocMap.Map PV3.ScriptPurpose PV3.Redeemer)
txInfoRedeemersAssocL :: Lens' TxInfo (Map ScriptPurpose Redeemer)
txInfoRedeemersAssocL = (TxInfo -> Map ScriptPurpose Redeemer)
-> (TxInfo -> Map ScriptPurpose Redeemer -> TxInfo)
-> Lens' TxInfo (Map ScriptPurpose Redeemer)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens TxInfo -> Map ScriptPurpose Redeemer
PV3.txInfoRedeemers (\TxInfo
ti Map ScriptPurpose Redeemer
r -> TxInfo
ti {PV3.txInfoRedeemers = r})
mintValueMapL :: L.Lens' MintValue (Map PV1.CurrencySymbol (Map PV1.TokenName Integer))
mintValueMapL :: Lens' MintValue (Map CurrencySymbol (Map TokenName Integer))
mintValueMapL = (MintValue -> Map CurrencySymbol (Map TokenName Integer))
-> (MintValue
-> Map CurrencySymbol (Map TokenName Integer) -> MintValue)
-> Lens' MintValue (Map CurrencySymbol (Map TokenName Integer))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens MintValue -> Map CurrencySymbol (Map TokenName Integer)
getter MintValue
-> Map CurrencySymbol (Map TokenName Integer) -> MintValue
forall {p}.
p -> Map CurrencySymbol (Map TokenName Integer) -> MintValue
setter
where
getter :: MintValue -> Map CurrencySymbol (Map TokenName Integer)
getter MintValue
mp = [(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ([(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer))
-> [(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall a b. (a -> b) -> a -> b
$ Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall k v. Map k v -> [(k, v)]
AssocMap.toList (Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)])
-> Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall a b. (a -> b) -> a -> b
$ (Map TokenName Integer -> Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
forall a b.
(a -> b) -> Map CurrencySymbol a -> Map CurrencySymbol b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
PlutusTx.fmap ([(TokenName, Integer)] -> Map TokenName Integer
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ([(TokenName, Integer)] -> Map TokenName Integer)
-> (Map TokenName Integer -> [(TokenName, Integer)])
-> Map TokenName Integer
-> Map TokenName Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Map TokenName Integer -> [(TokenName, Integer)]
forall k v. Map k v -> [(k, v)]
AssocMap.toList) (Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer))
-> Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
forall a b. (a -> b) -> a -> b
$ MintValue -> Map CurrencySymbol (Map TokenName Integer)
mintValueToMap MintValue
mp
setter :: p -> Map CurrencySymbol (Map TokenName Integer) -> MintValue
setter p
_ Map CurrencySymbol (Map TokenName Integer)
v =
Map CurrencySymbol (Map TokenName Integer) -> MintValue
UnsafeMintValue (Map CurrencySymbol (Map TokenName Integer) -> MintValue)
-> Map CurrencySymbol (Map TokenName Integer) -> MintValue
forall a b. (a -> b) -> a -> b
$
[(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall k v. [(k, v)] -> Map k v
AssocMap.unsafeFromList ([(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer))
-> [(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall a b. (a -> b) -> a -> b
$
((CurrencySymbol, Map TokenName Integer)
-> (CurrencySymbol, Map TokenName Integer) -> Ordering)
-> [(CurrencySymbol, Map TokenName Integer)]
-> [(CurrencySymbol, Map TokenName Integer)]
forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy (((CurrencySymbol, Map TokenName Integer) -> CurrencySymbol)
-> (CurrencySymbol, Map TokenName Integer)
-> (CurrencySymbol, Map TokenName Integer)
-> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing (CurrencySymbol, Map TokenName Integer) -> CurrencySymbol
forall a b. (a, b) -> a
fst) ([(CurrencySymbol, Map TokenName Integer)]
-> [(CurrencySymbol, Map TokenName Integer)])
-> [(CurrencySymbol, Map TokenName Integer)]
-> [(CurrencySymbol, Map TokenName Integer)]
forall a b. (a -> b) -> a -> b
$
Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall k a. Map k a -> [(k, a)]
Map.toList (Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)])
-> Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall a b. (a -> b) -> a -> b
$
(Map TokenName Integer -> Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
forall a b.
(a -> b) -> Map CurrencySymbol a -> Map CurrencySymbol b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ([(TokenName, Integer)] -> Map TokenName Integer
forall k v. [(k, v)] -> Map k v
AssocMap.unsafeFromList ([(TokenName, Integer)] -> Map TokenName Integer)
-> (Map TokenName Integer -> [(TokenName, Integer)])
-> Map TokenName Integer
-> Map TokenName Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((TokenName, Integer) -> (TokenName, Integer) -> Ordering)
-> [(TokenName, Integer)] -> [(TokenName, Integer)]
forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy (((TokenName, Integer) -> TokenName)
-> (TokenName, Integer) -> (TokenName, Integer) -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing (TokenName, Integer) -> TokenName
forall a b. (a, b) -> a
fst) ([(TokenName, Integer)] -> [(TokenName, Integer)])
-> (Map TokenName Integer -> [(TokenName, Integer)])
-> Map TokenName Integer
-> [(TokenName, Integer)]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Map TokenName Integer -> [(TokenName, Integer)]
forall k a. Map k a -> [(k, a)]
Map.toList) Map CurrencySymbol (Map TokenName Integer)
v
valueMapL :: L.Lens' PV1.Value (Map PV1.CurrencySymbol (Map PV1.TokenName Integer))
valueMapL :: Lens' Value (Map CurrencySymbol (Map TokenName Integer))
valueMapL = (Value -> Map CurrencySymbol (Map TokenName Integer))
-> (Value -> Map CurrencySymbol (Map TokenName Integer) -> Value)
-> Lens' Value (Map CurrencySymbol (Map TokenName Integer))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens Value -> Map CurrencySymbol (Map TokenName Integer)
getter Value -> Map CurrencySymbol (Map TokenName Integer) -> Value
forall {p}.
p -> Map CurrencySymbol (Map TokenName Integer) -> Value
setter
where
getter :: Value -> Map CurrencySymbol (Map TokenName Integer)
getter Value
mp =
[(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ([(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer))
-> [(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall a b. (a -> b) -> a -> b
$
Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall k v. Map k v -> [(k, v)]
AssocMap.toList (Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)])
-> Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall a b. (a -> b) -> a -> b
$
(Map TokenName Integer -> Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
forall a b.
(a -> b) -> Map CurrencySymbol a -> Map CurrencySymbol b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
PlutusTx.fmap ([(TokenName, Integer)] -> Map TokenName Integer
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList ([(TokenName, Integer)] -> Map TokenName Integer)
-> (Map TokenName Integer -> [(TokenName, Integer)])
-> Map TokenName Integer
-> Map TokenName Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Map TokenName Integer -> [(TokenName, Integer)]
forall k v. Map k v -> [(k, v)]
AssocMap.toList) (Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer))
-> Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
forall a b. (a -> b) -> a -> b
$
Value -> Map CurrencySymbol (Map TokenName Integer)
PV1.getValue Value
mp
setter :: p -> Map CurrencySymbol (Map TokenName Integer) -> Value
setter p
_ Map CurrencySymbol (Map TokenName Integer)
v =
Map CurrencySymbol (Map TokenName Integer) -> Value
PV1.Value (Map CurrencySymbol (Map TokenName Integer) -> Value)
-> Map CurrencySymbol (Map TokenName Integer) -> Value
forall a b. (a -> b) -> a -> b
$
[(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall k v. [(k, v)] -> Map k v
AssocMap.unsafeFromList ([(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer))
-> [(CurrencySymbol, Map TokenName Integer)]
-> Map CurrencySymbol (Map TokenName Integer)
forall a b. (a -> b) -> a -> b
$
((CurrencySymbol, Map TokenName Integer)
-> (CurrencySymbol, Map TokenName Integer) -> Ordering)
-> [(CurrencySymbol, Map TokenName Integer)]
-> [(CurrencySymbol, Map TokenName Integer)]
forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy (((CurrencySymbol, Map TokenName Integer) -> CurrencySymbol)
-> (CurrencySymbol, Map TokenName Integer)
-> (CurrencySymbol, Map TokenName Integer)
-> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing (CurrencySymbol, Map TokenName Integer) -> CurrencySymbol
forall a b. (a, b) -> a
fst) ([(CurrencySymbol, Map TokenName Integer)]
-> [(CurrencySymbol, Map TokenName Integer)])
-> [(CurrencySymbol, Map TokenName Integer)]
-> [(CurrencySymbol, Map TokenName Integer)]
forall a b. (a -> b) -> a -> b
$
Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall k a. Map k a -> [(k, a)]
Map.toList (Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)])
-> Map CurrencySymbol (Map TokenName Integer)
-> [(CurrencySymbol, Map TokenName Integer)]
forall a b. (a -> b) -> a -> b
$
[(TokenName, Integer)] -> Map TokenName Integer
forall k v. [(k, v)] -> Map k v
AssocMap.unsafeFromList ([(TokenName, Integer)] -> Map TokenName Integer)
-> (Map TokenName Integer -> [(TokenName, Integer)])
-> Map TokenName Integer
-> Map TokenName Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((TokenName, Integer) -> (TokenName, Integer) -> Ordering)
-> [(TokenName, Integer)] -> [(TokenName, Integer)]
forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy (((TokenName, Integer) -> TokenName)
-> (TokenName, Integer) -> (TokenName, Integer) -> Ordering
forall a b. Ord a => (b -> a) -> b -> b -> Ordering
comparing (TokenName, Integer) -> TokenName
forall a b. (a, b) -> a
fst) ([(TokenName, Integer)] -> [(TokenName, Integer)])
-> (Map TokenName Integer -> [(TokenName, Integer)])
-> Map TokenName Integer
-> [(TokenName, Integer)]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Map TokenName Integer -> [(TokenName, Integer)]
forall k a. Map k a -> [(k, a)]
Map.toList (Map TokenName Integer -> Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
-> Map CurrencySymbol (Map TokenName Integer)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Map CurrencySymbol (Map TokenName Integer)
v
lowerBoundExtendedL :: L.Lens' (PV1.LowerBound a) (PV1.Extended a)
lowerBoundExtendedL :: forall a (f :: * -> *).
Functor f =>
(Extended a -> f (Extended a)) -> LowerBound a -> f (LowerBound a)
lowerBoundExtendedL = (LowerBound a -> Extended a)
-> (LowerBound a -> Extended a -> LowerBound a)
-> Lens (LowerBound a) (LowerBound a) (Extended a) (Extended a)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens LowerBound a -> Extended a
forall {a}. LowerBound a -> Extended a
getter LowerBound a -> Extended a -> LowerBound a
forall {a} {a}. LowerBound a -> Extended a -> LowerBound a
setter
where
getter :: LowerBound a -> Extended a
getter (PV1.LowerBound Extended a
e Closure
_) = Extended a
e
setter :: LowerBound a -> Extended a -> LowerBound a
setter (PV1.LowerBound Extended a
_ Closure
c) Extended a
e = Extended a -> Closure -> LowerBound a
forall a. Extended a -> Closure -> LowerBound a
PV1.LowerBound Extended a
e Closure
c
lowerBoundClosureL :: L.Lens' (PV1.LowerBound a) PV1.Closure
lowerBoundClosureL :: forall a (f :: * -> *).
Functor f =>
(Closure -> f Closure) -> LowerBound a -> f (LowerBound a)
lowerBoundClosureL = (LowerBound a -> Closure)
-> (LowerBound a -> Closure -> LowerBound a)
-> Lens (LowerBound a) (LowerBound a) Closure Closure
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens LowerBound a -> Closure
forall {a}. LowerBound a -> Closure
getter LowerBound a -> Closure -> LowerBound a
forall {a}. LowerBound a -> Closure -> LowerBound a
setter
where
getter :: LowerBound a -> Closure
getter (PV1.LowerBound Extended a
_ Closure
c) = Closure
c
setter :: LowerBound a -> Closure -> LowerBound a
setter (PV1.LowerBound Extended a
e Closure
_) = Extended a -> Closure -> LowerBound a
forall a. Extended a -> Closure -> LowerBound a
PV1.LowerBound Extended a
e
upperBoundExtendedL :: L.Lens' (PV1.UpperBound a) (PV1.Extended a)
upperBoundExtendedL :: forall a (f :: * -> *).
Functor f =>
(Extended a -> f (Extended a)) -> UpperBound a -> f (UpperBound a)
upperBoundExtendedL = (UpperBound a -> Extended a)
-> (UpperBound a -> Extended a -> UpperBound a)
-> Lens (UpperBound a) (UpperBound a) (Extended a) (Extended a)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens UpperBound a -> Extended a
forall {a}. UpperBound a -> Extended a
getter UpperBound a -> Extended a -> UpperBound a
forall {a} {a}. UpperBound a -> Extended a -> UpperBound a
setter
where
getter :: UpperBound a -> Extended a
getter (PV1.UpperBound Extended a
e Closure
_) = Extended a
e
setter :: UpperBound a -> Extended a -> UpperBound a
setter (PV1.UpperBound Extended a
_ Closure
c) Extended a
e = Extended a -> Closure -> UpperBound a
forall a. Extended a -> Closure -> UpperBound a
PV1.UpperBound Extended a
e Closure
c
upperBoundClosureL :: L.Lens' (PV1.UpperBound a) PV1.Closure
upperBoundClosureL :: forall a (f :: * -> *).
Functor f =>
(Closure -> f Closure) -> UpperBound a -> f (UpperBound a)
upperBoundClosureL = (UpperBound a -> Closure)
-> (UpperBound a -> Closure -> UpperBound a)
-> Lens (UpperBound a) (UpperBound a) Closure Closure
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens UpperBound a -> Closure
forall {a}. UpperBound a -> Closure
getter UpperBound a -> Closure -> UpperBound a
forall {a}. UpperBound a -> Closure -> UpperBound a
setter
where
getter :: UpperBound a -> Closure
getter (PV1.UpperBound Extended a
_ Closure
c) = Closure
c
setter :: UpperBound a -> Closure -> UpperBound a
setter (PV1.UpperBound Extended a
e Closure
_) = Extended a -> Closure -> UpperBound a
forall a. Extended a -> Closure -> UpperBound a
PV1.UpperBound Extended a
e