Skip to content

Commit ae84abc

Browse files
author
jared
committed
Generalize the code generators builtin table symbol table lookup by
changing `newtype PrintRead qvn = MkPrintRead { builtins :: Map ValueName qvn }` to `newtype PrintRead qvn = MkPrintRead { builtins :: Ref -> Maybe qvn }` s.t. the generated `qvn` may be influenced by the types it is instantiated with.
1 parent 05cdec8 commit ae84abc

File tree

5 files changed

+125
-123
lines changed

5 files changed

+125
-123
lines changed

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Haskell/Print/Derive.hs

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import Data.Set (Set)
88
import LambdaBuffers.Codegen.Haskell.Print (MonadPrint)
99
import LambdaBuffers.Codegen.Haskell.Print.LamVal (printValueE)
1010
import LambdaBuffers.Codegen.Haskell.Print.Syntax qualified as H
11-
import LambdaBuffers.Codegen.LamVal qualified as LV
1211
import LambdaBuffers.Codegen.LamVal.Eq (deriveEqImpl)
1312
import LambdaBuffers.Codegen.LamVal.Json (deriveFromJsonImpl, deriveToJsonImpl)
1413
import LambdaBuffers.Codegen.LamVal.MonadPrint qualified as LV
@@ -55,14 +54,15 @@ hsClassImplPrinters =
5554
eqClassMethodName :: H.ValueName
5655
eqClassMethodName = H.MkValueName "=="
5756

58-
lvEqBuiltinsBase :: Map LV.ValueName (H.CabalPackageName, H.ModuleName, H.ValueName)
59-
lvEqBuiltinsBase =
60-
Map.fromList
61-
[ ("eq", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "=="))
62-
, ("and", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "&&"))
63-
, ("true", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "True"))
64-
, ("false", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "False"))
65-
]
57+
lvEqBuiltinsBase :: LV.PrintRead (H.CabalPackageName, H.ModuleName, H.ValueName)
58+
lvEqBuiltinsBase = LV.MkPrintRead $ \(_ty, refName) ->
59+
Map.lookup refName $
60+
Map.fromList
61+
[ ("eq", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "=="))
62+
, ("and", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "&&"))
63+
, ("true", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "True"))
64+
, ("false", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "False"))
65+
]
6666

6767
printDeriveEqBase :: MonadPrint m => PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> m (Doc ann)
6868
printDeriveEqBase mn iTyDefs mkInstanceDoc ty = do
@@ -76,14 +76,15 @@ printDeriveEqBase mn iTyDefs mkInstanceDoc ty = do
7676
for_ imps Print.importValue
7777
return instanceDoc
7878

79-
lvEqBuiltinsPlutusTx :: Map LV.ValueName (H.CabalPackageName, H.ModuleName, H.ValueName)
80-
lvEqBuiltinsPlutusTx =
81-
Map.fromList
82-
[ ("eq", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Eq", H.MkValueName "=="))
83-
, ("and", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Bool", H.MkValueName "&&"))
84-
, ("true", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Bool", H.MkValueName "True"))
85-
, ("false", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Bool", H.MkValueName "False"))
86-
]
79+
lvEqBuiltinsPlutusTx :: LV.PrintRead (H.CabalPackageName, H.ModuleName, H.ValueName)
80+
lvEqBuiltinsPlutusTx = LV.MkPrintRead $ \(_ty, refName) ->
81+
Map.lookup refName $
82+
Map.fromList
83+
[ ("eq", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Eq", H.MkValueName "=="))
84+
, ("and", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Bool", H.MkValueName "&&"))
85+
, ("true", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Bool", H.MkValueName "True"))
86+
, ("false", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Bool", H.MkValueName "False"))
87+
]
8788

8889
printDeriveEqPlutusTx :: MonadPrint m => PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> m (Doc ann)
8990
printDeriveEqPlutusTx mn iTyDefs mkInstanceDoc ty = do
@@ -100,19 +101,20 @@ printDeriveEqPlutusTx mn iTyDefs mkInstanceDoc ty = do
100101
printInlineable :: H.ValueName -> Doc ann
101102
printInlineable valName = "{-# INLINABLE" <+> H.printHsValName valName <+> "#-}"
102103

103-
lvPlutusDataBuiltins :: Map LV.ValueName H.QValName
104-
lvPlutusDataBuiltins =
105-
Map.fromList
106-
[ ("toPlutusData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx", H.MkValueName "toBuiltinData"))
107-
, ("fromPlutusData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx", H.MkValueName "fromBuiltinData"))
108-
, ("casePlutusData", (H.MkCabalPackageName "lbr-plutus", H.MkModuleName "LambdaBuffers.Runtime.Plutus", H.MkValueName "casePlutusData"))
109-
, ("integerData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Builtins", H.MkValueName "mkI"))
110-
, ("constrData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Builtins", H.MkValueName "mkConstr"))
111-
, ("listData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Builtins", H.MkValueName "mkList"))
112-
, ("succeedParse", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Maybe", H.MkValueName "Just"))
113-
, ("failParse", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Maybe", H.MkValueName "Nothing"))
114-
, ("bindParse", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Prelude", H.MkValueName ">>="))
115-
]
104+
lvPlutusDataBuiltins :: LV.PrintRead H.QValName
105+
lvPlutusDataBuiltins = LV.MkPrintRead $ \(_ty, refName) ->
106+
Map.lookup refName $
107+
Map.fromList
108+
[ ("toPlutusData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx", H.MkValueName "toBuiltinData"))
109+
, ("fromPlutusData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx", H.MkValueName "fromBuiltinData"))
110+
, ("casePlutusData", (H.MkCabalPackageName "lbr-plutus", H.MkModuleName "LambdaBuffers.Runtime.Plutus", H.MkValueName "casePlutusData"))
111+
, ("integerData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Builtins", H.MkValueName "mkI"))
112+
, ("constrData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Builtins", H.MkValueName "mkConstr"))
113+
, ("listData", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Builtins", H.MkValueName "mkList"))
114+
, ("succeedParse", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Maybe", H.MkValueName "Just"))
115+
, ("failParse", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Maybe", H.MkValueName "Nothing"))
116+
, ("bindParse", (H.MkCabalPackageName "plutus-tx", H.MkModuleName "PlutusTx.Prelude", H.MkValueName ">>="))
117+
]
116118

117119
toPlutusDataClassMethodName :: H.ValueName
118120
toPlutusDataClassMethodName = H.MkValueName "toBuiltinData"
@@ -152,22 +154,23 @@ printDeriveFromPlutusData mn iTyDefs mkInstanceDoc ty = do
152154
return instanceDoc
153155

154156
-- | LambdaBuffers.Codegen.LamVal.Json specification printing
155-
lvJsonBuiltins :: Map LV.ValueName H.QValName
156-
lvJsonBuiltins =
157-
Map.fromList
158-
[ ("toJson", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "toJson"))
159-
, ("fromJson", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "fromJson"))
160-
, ("jsonObject", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonObject"))
161-
, ("jsonConstructor", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonConstructor"))
162-
, ("jsonArray", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonArray"))
163-
, ("caseJsonConstructor", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "caseJsonConstructor"))
164-
, ("caseJsonArray", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "caseJsonArray"))
165-
, ("caseJsonObject", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "caseJsonObject"))
166-
, ("jsonField", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonField"))
167-
, ("succeedParse", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "return"))
168-
, ("failParse", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "fail"))
169-
, ("bindParse", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName ">>="))
170-
]
157+
lvJsonBuiltins :: LV.PrintRead H.QValName
158+
lvJsonBuiltins = LV.MkPrintRead $ \(_ty, refName) ->
159+
Map.lookup refName $
160+
Map.fromList
161+
[ ("toJson", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "toJson"))
162+
, ("fromJson", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "fromJson"))
163+
, ("jsonObject", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonObject"))
164+
, ("jsonConstructor", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonConstructor"))
165+
, ("jsonArray", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonArray"))
166+
, ("caseJsonConstructor", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "caseJsonConstructor"))
167+
, ("caseJsonArray", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "caseJsonArray"))
168+
, ("caseJsonObject", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "caseJsonObject"))
169+
, ("jsonField", (H.MkCabalPackageName "lbr-prelude", H.MkModuleName "LambdaBuffers.Runtime.Prelude", H.MkValueName "jsonField"))
170+
, ("succeedParse", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "return"))
171+
, ("failParse", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName "fail"))
172+
, ("bindParse", (H.MkCabalPackageName "base", H.MkModuleName "Prelude", H.MkValueName ">>="))
173+
]
171174

172175
toJsonClassMethodName :: H.ValueName
173176
toJsonClassMethodName = H.MkValueName "toJson"

lambda-buffers-codegen/src/LambdaBuffers/Codegen/LamVal/MonadPrint.hs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
module LambdaBuffers.Codegen.LamVal.MonadPrint (MonadPrint, runPrint, freshArg, resolveRef, importValue) where
1+
module LambdaBuffers.Codegen.LamVal.MonadPrint (MonadPrint, PrintRead (MkPrintRead), runPrint, freshArg, resolveRef, importValue) where
22

33
import Control.Lens ((&), (.~))
44
import Control.Monad.Error.Class (MonadError (throwError))
55
import Control.Monad.Except (Except, runExcept)
66
import Control.Monad.RWS (RWST (runRWST))
77
import Control.Monad.RWS.Class (MonadRWS, asks, gets, modify)
8-
import Data.Map (Map)
9-
import Data.Map qualified as Map
108
import Data.ProtoLens (Message (defMessage))
119
import Data.Set (Set)
1210
import Data.Set qualified as Set
@@ -17,9 +15,8 @@ import Proto.Codegen qualified as P
1715
import Proto.Codegen_Fields qualified as P
1816

1917
newtype PrintRead qvn = MkPrintRead
20-
{ builtins :: Map ValueName qvn
18+
{ builtins :: Ref -> Maybe qvn
2119
}
22-
deriving stock (Show)
2320

2421
data PrintState qvn = MkPrintState
2522
{ currentVar :: Int
@@ -36,9 +33,9 @@ type MonadPrint m qvn = (MonadRWS (PrintRead qvn) () (PrintState qvn) m, MonadEr
3633

3734
type PrintM qvn = RWST (PrintRead qvn) () (PrintState qvn) (Except PrintError)
3835

39-
runPrint :: Ord qvn => Map ValueName qvn -> PrintM qvn (Doc ann) -> Either PrintError (Doc ann, Set qvn)
36+
runPrint :: Ord qvn => PrintRead qvn -> PrintM qvn (Doc ann) -> Either PrintError (Doc ann, Set qvn)
4037
runPrint lamValBuiltins printer =
41-
let p = runExcept $ runRWST printer (MkPrintRead lamValBuiltins) (MkPrintState 0 mempty)
38+
let p = runExcept $ runRWST printer lamValBuiltins (MkPrintState 0 mempty)
4239
in case p of
4340
Left err -> Left err
4441
Right (doc, st, _) -> Right (doc, valueImports st)
@@ -61,8 +58,8 @@ importValue qvn = modify (\(MkPrintState curr imps) -> MkPrintState curr (Set.in
6158
TODO(bladyjoker): Output all necessary implementations from the Compiler and report on missing.
6259
-}
6360
resolveRef :: MonadPrint m qvn => Ref -> m qvn
64-
resolveRef (_, refName) = do
61+
resolveRef ref = do
6562
bs <- asks builtins
66-
case Map.lookup refName bs of
67-
Nothing -> throwInternalError $ "LamVal builtin mapping for " <> show refName <> " not configured."
63+
case bs ref of
64+
Nothing -> throwInternalError $ "LamVal builtin mapping for " <> show (snd ref :: ValueName) <> " instantiated with types " <> show (fst ref) <> " not configured."
6865
Just qvn -> return qvn

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Plutarch/Print/Derive.hs

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import LambdaBuffers.Codegen.Haskell.Print.InstanceDef qualified as HsSyntax
1212
import LambdaBuffers.Codegen.Haskell.Print.LamVal qualified as HsLamVal
1313
import LambdaBuffers.Codegen.Haskell.Print.Syntax qualified as HsSyntax
1414
import LambdaBuffers.Codegen.Haskell.Print.TyDef qualified as HsTyDef
15-
import LambdaBuffers.Codegen.LamVal qualified as LV
1615
import LambdaBuffers.Codegen.LamVal.MonadPrint qualified as LV
1716
import LambdaBuffers.Codegen.LamVal.PlutusData (deriveFromPlutusDataImplPlutarch, deriveToPlutusDataImplPlutarch)
1817
import LambdaBuffers.Codegen.Plutarch.Print.LamVal qualified as PlLamVal
@@ -109,19 +108,20 @@ printDerivePIsData _mn _iTyDefs mkInstanceDoc _ty = do
109108
let instanceDoc = mkInstanceDoc (align $ vsep [pdataImpl, pfromDataImpl])
110109
return instanceDoc
111110

112-
lvPlutusDataBuiltinsForPlutusType :: Map LV.ValueName HsSyntax.QValName
113-
lvPlutusDataBuiltinsForPlutusType =
114-
Map.fromList
115-
[ ("toPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "toPlutusData"))
116-
, ("fromPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfromPlutusDataPlutusType"))
117-
, ("casePlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pcasePlutusData"))
118-
, ("integerData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "integerData"))
119-
, ("constrData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "constrData"))
120-
, ("listData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "listData"))
121-
, ("succeedParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "psucceedParse"))
122-
, ("failParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfailParse"))
123-
, ("bindParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pbindParse"))
124-
]
111+
lvPlutusDataBuiltinsForPlutusType :: LV.PrintRead HsSyntax.QValName
112+
lvPlutusDataBuiltinsForPlutusType = LV.MkPrintRead $ \(_ty, refName) ->
113+
Map.lookup refName $
114+
Map.fromList
115+
[ ("toPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "toPlutusData"))
116+
, ("fromPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfromPlutusDataPlutusType"))
117+
, ("casePlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pcasePlutusData"))
118+
, ("integerData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "integerData"))
119+
, ("constrData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "constrData"))
120+
, ("listData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "listData"))
121+
, ("succeedParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "psucceedParse"))
122+
, ("failParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfailParse"))
123+
, ("bindParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pbindParse"))
124+
]
125125

126126
printDerivePlutusType :: MonadPrint m => PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> m (Doc ann)
127127
printDerivePlutusType mn iTyDefs _mkInstanceDoc ty = do
@@ -196,19 +196,20 @@ printPlutusTypeInstanceDef ty implDefDoc = do
196196
printValueDef :: HsSyntax.ValueName -> Doc ann -> Doc ann
197197
printValueDef valName valDoc = HsSyntax.printHsValName valName <+> equals <+> valDoc
198198

199-
lvPlutusDataBuiltinsForPTryFrom :: Map LV.ValueName HsSyntax.QValName
200-
lvPlutusDataBuiltinsForPTryFrom =
201-
Map.fromList
202-
[ ("toPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "toPlutusData"))
203-
, ("fromPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfromPlutusDataPTryFrom"))
204-
, ("casePlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pcasePlutusData"))
205-
, ("integerData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "integerData"))
206-
, ("constrData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "constrData"))
207-
, ("listData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "listData"))
208-
, ("succeedParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "psucceedParse"))
209-
, ("failParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfailParse"))
210-
, ("bindParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pbindParse"))
211-
]
199+
lvPlutusDataBuiltinsForPTryFrom :: LV.PrintRead HsSyntax.QValName
200+
lvPlutusDataBuiltinsForPTryFrom = LV.MkPrintRead $ \(_ty, refName) ->
201+
Map.lookup refName $
202+
Map.fromList
203+
[ ("toPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "toPlutusData"))
204+
, ("fromPlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfromPlutusDataPTryFrom"))
205+
, ("casePlutusData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pcasePlutusData"))
206+
, ("integerData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "integerData"))
207+
, ("constrData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "constrData"))
208+
, ("listData", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "listData"))
209+
, ("succeedParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "psucceedParse"))
210+
, ("failParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pfailParse"))
211+
, ("bindParse", (HsSyntax.MkCabalPackageName "lbr-plutarch", HsSyntax.MkModuleName "LambdaBuffers.Runtime.Plutarch.LamVal", HsSyntax.MkValueName "pbindParse"))
212+
]
212213

213214
{- | PTryFrom instance implementation.
214215

0 commit comments

Comments
 (0)