Skip to content

Commit 59e3157

Browse files
committed
Rust codegen: refactor Rust ModuleName and Qualified types
1 parent c3b6cdc commit 59e3157

File tree

5 files changed

+67
-64
lines changed

5 files changed

+67
-64
lines changed

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

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -32,19 +32,19 @@ rsTraitImplPrinters ::
3232
rsTraitImplPrinters =
3333
Map.fromList
3434
[
35-
( R.qLibRef R.MkTraitName "std" "cmp" "PartialEq"
35+
( R.qForeignRef R.MkTraitName "std" ["cmp"] "PartialEq"
3636
, printDerivePartialEqBase
3737
)
3838
,
39-
( R.qLibRef R.MkTraitName "std" "cmp" "Eq"
39+
( R.qForeignRef R.MkTraitName "std" ["cmp"] "Eq"
4040
, printDeriveEqBase
4141
)
4242
,
43-
( R.qLibRef R.MkTraitName "plutus-ledger-api" "plutus_data" "IsPlutusData"
43+
( R.qForeignRef R.MkTraitName "plutus-ledger-api" ["plutus_data"] "IsPlutusData"
4444
, printDeriveIsPlutusData
4545
)
4646
,
47-
( R.qLibRef R.MkTraitName "lbr-prelude" "json" "Json"
47+
( R.qForeignRef R.MkTraitName "lbr-prelude" ["json"] "Json"
4848
, printDeriveJson
4949
)
5050
]
@@ -61,11 +61,11 @@ lvEqBuiltinsBase :: LV.PrintRead R.QValName
6161
lvEqBuiltinsBase = LV.MkPrintRead $ \(_ty, refName) ->
6262
Map.lookup refName $
6363
Map.fromList
64-
[ ("eq", R.qLibRef R.MkValueName "lbr-prelude" "lamval" "eq")
65-
, ("and", R.qLibRef R.MkValueName "lbr-prelude" "lamval" "and")
64+
[ ("eq", R.qForeignRef R.MkValueName "lbr-prelude" ["lamval"] "eq")
65+
, ("and", R.qForeignRef R.MkValueName "lbr-prelude" ["lamval"] "and")
6666
, ("true", R.qBuiltin R.MkValueName "true")
6767
, ("false", R.qBuiltin R.MkValueName "false")
68-
, ("PhantomData", R.qLibRef R.MkValueName "std" "marker" "PhantomData")
68+
, ("PhantomData", R.qForeignRef R.MkValueName "std" ["marker"] "PhantomData")
6969
]
7070

7171
printDerivePartialEqBase :: MonadPrint m => PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> m (Doc ann)
@@ -88,15 +88,15 @@ lvPlutusDataBuiltins :: LV.PrintRead R.QValName
8888
lvPlutusDataBuiltins = LV.MkPrintRead $ \(_ty, refName) ->
8989
Map.lookup refName $
9090
Map.fromList
91-
[ ("toPlutusData", R.qLibRef R.MkValueName "plutus-ledger-api" "plutus_data::IsPlutusData" "to_plutus_data")
92-
, ("fromPlutusData", R.qLibRef R.MkValueName "plutus-ledger-api" "plutus_data::IsPlutusData" "from_plutus_data")
93-
, ("casePlutusData", R.qLibRef R.MkValueName "plutus-ledger-api" "lamval" "case_plutus_data")
94-
, ("integerData", R.qLibRef R.MkValueName "plutus-ledger-api" "plutus_data" "PlutusData::integer")
95-
, ("constrData", R.qLibRef R.MkValueName "plutus-ledger-api" "lamval" "constr")
96-
, ("listData", R.qLibRef R.MkValueName "plutus-ledger-api" "plutus_data" "PlutusData::list")
97-
, ("succeedParse", R.qLibRef R.MkValueName "std" "result" "Result::Ok")
98-
, ("failParse", R.qLibRef R.MkValueName "plutus-ledger-api" "lamval" "fail_parse()")
99-
, ("bindParse", R.qLibRef R.MkValueName "plutus-ledger-api" "lamval" "bind_parse")
91+
[ ("toPlutusData", R.qForeignRef R.MkValueName "plutus-ledger-api" ["plutus_data", "IsPlutusData"] "to_plutus_data")
92+
, ("fromPlutusData", R.qForeignRef R.MkValueName "plutus-ledger-api" ["plutus_data", "IsPlutusData"] "from_plutus_data")
93+
, ("casePlutusData", R.qForeignRef R.MkValueName "plutus-ledger-api" ["lamval"] "case_plutus_data")
94+
, ("integerData", R.qForeignRef R.MkValueName "plutus-ledger-api" ["plutus_data"] "PlutusData::integer")
95+
, ("constrData", R.qForeignRef R.MkValueName "plutus-ledger-api" ["lamval"] "constr")
96+
, ("listData", R.qForeignRef R.MkValueName "plutus-ledger-api" ["plutus_data"] "PlutusData::list")
97+
, ("succeedParse", R.qForeignRef R.MkValueName "std" ["result", "Result"] "Ok")
98+
, ("failParse", R.qForeignRef R.MkValueName "plutus-ledger-api" ["lamval"] "fail_parse()")
99+
, ("bindParse", R.qForeignRef R.MkValueName "plutus-ledger-api" ["lamval"] "bind_parse")
100100
]
101101

102102
toPlutusDataTraitMethodName :: R.ValueName
@@ -107,7 +107,7 @@ toPlutusDataTraitMethodArgs = [(R.MkValueName "self", R.qBuiltin R.MkTyName "Sel
107107

108108
toPlutusDataTraitMethodReturns :: R.QTyName
109109
toPlutusDataTraitMethodReturns =
110-
R.qLibRef R.MkTyName "plutus-ledger-api" "plutus_data" "PlutusData"
110+
R.qForeignRef R.MkTyName "plutus-ledger-api" ["plutus_data"] "PlutusData"
111111

112112
fromPlutusDataTraitMethodName :: R.ValueName
113113
fromPlutusDataTraitMethodName = R.MkValueName "from_plutus_data"
@@ -116,20 +116,20 @@ fromPlutusDataTraitMethodArgs :: [(R.ValueName, R.QTyName)]
116116
fromPlutusDataTraitMethodArgs =
117117
[
118118
( R.MkValueName "plutus_data"
119-
, R.qLibRef
119+
, R.qForeignRef
120120
R.MkTyName
121121
"plutus-ledger-api"
122-
"plutus_data"
122+
["plutus_data"]
123123
"PlutusData"
124124
)
125125
]
126126

127127
fromPlutusDataTraitMethodReturns :: R.QTyName
128128
fromPlutusDataTraitMethodReturns =
129-
R.qLibRef
129+
R.qForeignRef
130130
R.MkTyName
131131
"std"
132-
"result"
132+
["result"]
133133
"Result<Self, plutus_ledger_api::plutus_data::PlutusDataError>"
134134

135135
printDeriveIsPlutusData :: MonadPrint m => PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> m (Doc ann)
@@ -142,11 +142,11 @@ printDeriveIsPlutusData mn iTyDefs mkInstanceDoc ty = do
142142

143143
printDeriveIsPlutusData' :: PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> Either P.InternalError (Doc ann, Set R.QValName)
144144
printDeriveIsPlutusData' mn iTyDefs mkInstanceDoc ty = do
145-
let extraDeps = Set.singleton (R.qLibRef R.MkValueName "serde_json" "" "Value")
145+
let extraDeps = Set.singleton (R.qForeignRef R.MkValueName "serde_json" [] "Value")
146146
toPlutusDataValE <- deriveToPlutusDataImpl mn iTyDefs ty
147147
(toPlutusDataImplDoc, impsA) <- LV.runPrint lvPlutusDataBuiltins (printInstance [R.qBuiltin R.MkTyName "Self"] iTyDefs toPlutusDataValE)
148148
fromPlutusDataValE <- deriveFromPlutusDataImpl mn iTyDefs ty
149-
(fromPlutusDataImplDoc, impsB) <- LV.runPrint lvPlutusDataBuiltins (printInstance [R.qLibRef R.MkTyName "plutus-ledger-api" "plutus_data" "PlutusData"] iTyDefs fromPlutusDataValE)
149+
(fromPlutusDataImplDoc, impsB) <- LV.runPrint lvPlutusDataBuiltins (printInstance [R.qForeignRef R.MkTyName "plutus-ledger-api" ["plutus_data"] "PlutusData"] iTyDefs fromPlutusDataValE)
150150

151151
let instanceDoc =
152152
mkInstanceDoc
@@ -174,18 +174,18 @@ lvJsonBuiltins :: LV.PrintRead R.QValName
174174
lvJsonBuiltins = LV.MkPrintRead $ \(_ty, refName) ->
175175
Map.lookup refName $
176176
Map.fromList
177-
[ ("toJson", R.qLibRef R.MkValueName "lbr-prelude" "json::Json" "to_json")
178-
, ("fromJson", R.qLibRef R.MkValueName "lbr-prelude" "json::Json" "from_json")
179-
, ("jsonObject", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "json_object")
180-
, ("jsonConstructor", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "json_constructor")
181-
, ("jsonArray", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "json_array")
182-
, ("caseJsonConstructor", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "case_json_constructor")
183-
, ("caseJsonArray", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "case_json_array")
184-
, ("caseJsonObject", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "case_json_object")
185-
, ("jsonField", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "json_field")
186-
, ("succeedParse", R.qLibRef R.MkValueName "std" "result" "Result::Ok")
187-
, ("failParse", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "fail_parse")
188-
, ("bindParse", R.qLibRef R.MkValueName "lbr-prelude" "json::lamval" "bind_parse")
177+
[ ("toJson", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "Json"] "to_json")
178+
, ("fromJson", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "Json"] "from_json")
179+
, ("jsonObject", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "json_object")
180+
, ("jsonConstructor", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "json_constructor")
181+
, ("jsonArray", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "json_array")
182+
, ("caseJsonConstructor", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "case_json_constructor")
183+
, ("caseJsonArray", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "case_json_array")
184+
, ("caseJsonObject", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "case_json_object")
185+
, ("jsonField", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "json_field")
186+
, ("succeedParse", R.qForeignRef R.MkValueName "std" ["result", "Result"] "Ok")
187+
, ("failParse", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "fail_parse")
188+
, ("bindParse", R.qForeignRef R.MkValueName "lbr-prelude" ["json", "lamval"] "bind_parse")
189189
]
190190

191191
toJsonTraitMethodName :: R.ValueName
@@ -196,17 +196,17 @@ toJsonTraitMethodArgs = [(R.MkValueName "self", R.qBuiltin R.MkTyName "Self")]
196196

197197
toJsonTraitMethodReturns :: R.QTyName
198198
toJsonTraitMethodReturns =
199-
R.qLibRef R.MkTyName "serde_json" "" "Value"
199+
R.qForeignRef R.MkTyName "serde_json" [] "Value"
200200

201201
fromJsonTraitMethodName :: R.ValueName
202202
fromJsonTraitMethodName = R.MkValueName "from_json"
203203

204204
fromJsonTraitMethodArgs :: [(R.ValueName, R.QTyName)]
205-
fromJsonTraitMethodArgs = [(R.MkValueName "value", R.qLibRef R.MkTyName "serde_json" "" "Value")]
205+
fromJsonTraitMethodArgs = [(R.MkValueName "value", R.qForeignRef R.MkTyName "serde_json" [] "Value")]
206206

207207
fromJsonTraitMethodReturns :: R.QTyName
208208
fromJsonTraitMethodReturns =
209-
R.qLibRef R.MkTyName "std" "result" "Result<Self, lbr_prelude::error::Error>" -- TODO(szg251): This is a hack
209+
R.qForeignRef R.MkTyName "std" ["result"] "Result<Self, lbr_prelude::error::Error>" -- TODO(szg251): This is a hack
210210

211211
printDeriveJson :: MonadPrint m => PC.ModuleName -> PC.TyDefs -> (Doc ann -> Doc ann) -> PC.Ty -> m (Doc ann)
212212
printDeriveJson mn iTyDefs mkInstanceDoc ty = do
@@ -241,7 +241,7 @@ printDeriveJson' mn iTyDefs mkInstanceDoc ty = do
241241
)
242242
return
243243
( instanceDoc
244-
, impsA <> impsB <> Set.singleton (R.qLibRef R.MkValueName "serde_json" "" "Value")
244+
, impsA <> impsB <> Set.singleton (R.qForeignRef R.MkValueName "serde_json" [] "Value")
245245
)
246246

247247
{- | Print a trait method implementation

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/InstanceDef.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ printInstanceContext :: R.QTraitName -> [PC.Ty] -> Doc ann
3636
printInstanceContext rsQTraitName = printInstanceContext' [rsQTraitName]
3737

3838
defaultTraitBounds :: [R.QTraitName]
39-
defaultTraitBounds = [R.qLibRef R.MkTraitName "std" "clone" "Clone"]
39+
defaultTraitBounds = [R.qForeignRef R.MkTraitName "std" ["clone"] "Clone"]
4040

4141
printInstanceContext' :: [R.QTraitName] -> [PC.Ty] -> Doc ann
4242
printInstanceContext' rsQTraitNames tys =

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/LamVal.hs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,31 +21,31 @@ import Prettyprinter (Doc, Pretty (pretty), align, angles, braces, brackets, col
2121
import Proto.Codegen_Fields qualified as P
2222

2323
caseIntERef :: R.QValName
24-
caseIntERef = R.Qualified'LibRef (R.MkCrateName "lbr-prelude") (R.MkModuleName "lamval") (R.MkValueName "case_int")
24+
caseIntERef = R.qForeignRef R.MkValueName "lbr-prelude" ["lamval"] "case_int"
2525

2626
bigInt :: R.QValName
27-
bigInt = R.Qualified'LibRef (R.MkCrateName "num-bigint") (R.MkModuleName "") (R.MkValueName "BigInt")
27+
bigInt = R.qForeignRef R.MkValueName "num-bigint" [] "BigInt"
2828

2929
vecAsSlice :: R.QValName
30-
vecAsSlice = R.Qualified'LibRef (R.MkCrateName "std") (R.MkModuleName "vec") (R.MkValueName "Vec::as_slice")
30+
vecAsSlice = R.qForeignRef R.MkValueName "lbr-prelude" ["lamval"] "case_int"
3131

3232
vecMacro :: R.QValName
33-
vecMacro = R.Qualified'LibRef (R.MkCrateName "std") (R.MkModuleName "") (R.MkValueName "vec!")
33+
vecMacro = R.qForeignRef R.MkValueName "std" [] "vec!"
3434

3535
fromU32Trait :: R.QTraitName
36-
fromU32Trait = R.Qualified'LibRef (R.MkCrateName "std") (R.MkModuleName "convert") (R.MkTraitName "From<u32>")
36+
fromU32Trait = R.qForeignRef R.MkTraitName "std" ["convert"] "From<u32>"
3737

3838
fromStrTrait :: R.QTraitName
39-
fromStrTrait = R.Qualified'LibRef (R.MkCrateName "std") (R.MkModuleName "convert") (R.MkTraitName "From<&str>")
39+
fromStrTrait = R.qForeignRef R.MkTraitName "std" ["convert"] "From<&str>"
4040

4141
cloneTrait :: R.QTraitName
42-
cloneTrait = R.Qualified'LibRef (R.MkCrateName "std") (R.MkModuleName "clone") (R.MkTraitName "Clone")
42+
cloneTrait = R.qForeignRef R.MkTraitName "std" ["clone"] "Clone"
4343

4444
boxNew :: R.QValName
45-
boxNew = R.Qualified'LibRef (R.MkCrateName "std") (R.MkModuleName "boxed") (R.MkValueName "Box::new")
45+
boxNew = R.qForeignRef R.MkValueName "std" ["boxed"] "Box::new"
4646

4747
phantomData :: R.QTyName
48-
phantomData = R.qLibRef R.MkTyName "std" "marker" "PhantomData"
48+
phantomData = R.qForeignRef R.MkTyName "std" ["marker"] "PhantomData"
4949

5050
{- | Clone a value (converting a type to owned)
5151
As in codegen we cannot know whether a type is owned or borrowed, we make sure to have an owned type by making a clone.

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/Syntax.hs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module LambdaBuffers.Codegen.Rust.Print.Syntax (printRsQTyName, printCtorName, printFieldName, printVarName, printTyName, printMkCtor, printModName, printRsQValName, printRsTraitMethodName, printRsQTraitName, printRsValName, QTyName, QTraitName, QValName, Qualified (..), CrateName (..), ModuleName (..), TyName (..), TraitName (..), ValueName (..), fromLbModuleName, crateFromLbModuleName, fromLbTyName, fromLbForeignRef, filepathFromModuleName, TyDefKw (..), crateNameToText, printQualifiedCtorName, printTyVar, printTyArg, doubleColon, printRsTyName, qualifiedToCrate, qLibRef, qBuiltin, printTyRef, qualifiedEntity, crateNameToCargoText, encloseGenerics) where
1+
module LambdaBuffers.Codegen.Rust.Print.Syntax (printRsQTyName, printCtorName, printFieldName, printVarName, printTyName, printMkCtor, printModName, printRsQValName, printRsTraitMethodName, printRsQTraitName, printRsValName, QTyName, QTraitName, QValName, Qualified (..), CrateName (..), ModuleName (..), TyName (..), TraitName (..), ValueName (..), fromLbModuleName, crateFromLbModuleName, fromLbTyName, fromLbForeignRef, filepathFromModuleName, TyDefKw (..), crateNameToText, printQualifiedCtorName, printTyVar, printTyArg, doubleColon, printRsTyName, qualifiedToCrate, qForeignRef, qBuiltin, printTyRef, qualifiedEntity, crateNameToCargoText, encloseGenerics) where
22

33
import Control.Lens ((^.))
44
import Data.Char qualified as Char
@@ -10,15 +10,15 @@ import Prettyprinter (Doc, Pretty (pretty), colon, comma, enclose, encloseSep, g
1010

1111
data Qualified a
1212
= Qualified'Builtin a
13-
| Qualified'LibRef CrateName ModuleName a
13+
| Qualified'LibRef CrateName [ModuleName] a
1414
deriving stock (Eq, Ord, Show)
1515

1616
type QValName = Qualified ValueName
1717
type QTyName = Qualified TyName
1818
type QTraitName = Qualified TraitName
1919

20-
qLibRef :: (Text -> a) -> Text -> Text -> Text -> Qualified a
21-
qLibRef mkA cn mn a = Qualified'LibRef (MkCrateName cn) (MkModuleName mn) (mkA a)
20+
qForeignRef :: (Text -> a) -> Text -> [Text] -> Text -> Qualified a
21+
qForeignRef mkA cn ms a = Qualified'LibRef (MkCrateName cn) (MkModuleName <$> ms) (mkA a)
2222

2323
qBuiltin :: (Text -> a) -> Text -> Qualified a
2424
qBuiltin mkA = Qualified'Builtin . mkA
@@ -32,7 +32,7 @@ qualifiedEntity (Qualified'Builtin a) = a
3232
qualifiedEntity (Qualified'LibRef _ _ a) = a
3333

3434
newtype CrateName = MkCrateName Text deriving stock (Eq, Ord, Show, Generic)
35-
newtype ModuleName = MkModuleName Text deriving stock (Eq, Ord, Show, Generic)
35+
newtype ModuleName = MkModuleName {unModuleName :: Text} deriving stock (Eq, Ord, Show, Generic)
3636
newtype TyName = MkTyName Text deriving stock (Eq, Ord, Show, Generic)
3737
newtype TraitName = MkTraitName Text deriving stock (Eq, Ord, Show, Generic)
3838
newtype ValueName = MkValueName Text deriving stock (Eq, Ord, Show, Generic)
@@ -42,8 +42,8 @@ data TyDefKw = StructTyDef | EnumTyDef | SynonymTyDef deriving stock (Eq, Ord, S
4242
fromLbTyName :: PC.TyName -> TyName
4343
fromLbTyName tn = MkTyName $ tn ^. #name
4444

45-
fromLbModuleName :: PC.ModuleName -> ModuleName
46-
fromLbModuleName mn = MkModuleName $ Text.intercalate "::" ([Text.replace "-" "_" $ Text.toLower $ p ^. #name | p <- mn ^. #parts])
45+
fromLbModuleName :: PC.ModuleName -> [ModuleName]
46+
fromLbModuleName mn = [MkModuleName $ Text.replace "-" "_" $ Text.toLower $ p ^. #name | p <- mn ^. #parts]
4747

4848
crateFromLbModuleName :: PC.ModuleName -> CrateName
4949
crateFromLbModuleName mn = MkCrateName $ Text.intercalate "_" ("lbf" : [Text.toLower $ p ^. #name | p <- mn ^. #parts])
@@ -64,15 +64,18 @@ fromLbForeignRef fr =
6464
(fromLbTyName $ fr ^. #tyName)
6565

6666
filepathFromModuleName :: PC.ModuleName -> FilePath
67-
filepathFromModuleName mn = Text.unpack (Text.replace "::" "/" (let MkModuleName txt = fromLbModuleName mn in txt)) <> ".rs"
67+
filepathFromModuleName mn = Text.unpack (Text.intercalate "/" (unModuleName <$> fromLbModuleName mn)) <> ".rs"
6868

6969
printModName :: PC.ModuleName -> Doc ann
70-
printModName mn = let MkModuleName hmn = fromLbModuleName mn in pretty hmn
70+
printModName = printRsModules . fromLbModuleName
71+
72+
printRsModules :: [ModuleName] -> Doc ann
73+
printRsModules rsMods = pretty $ Text.intercalate "::" $ unModuleName <$> rsMods
7174

7275
printQualified :: (a -> Doc ann) -> Qualified a -> Doc ann
7376
printQualified p (Qualified'Builtin entity) = p entity
74-
printQualified p (Qualified'LibRef (MkCrateName crateName) (MkModuleName rsModName) entity) =
75-
let modules = if Text.null rsModName then mempty else doubleColon <> pretty rsModName
77+
printQualified p (Qualified'LibRef (MkCrateName crateName) rsMods entity) =
78+
let modules = if null rsMods then mempty else doubleColon <> printRsModules rsMods
7679
in pretty (Text.replace "-" "_" crateName) <> modules <> doubleColon <> p entity
7780

7881
printRsTyName :: TyName -> Doc ann

lambda-buffers-codegen/src/LambdaBuffers/Codegen/Rust/Print/TyDef.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ printTyDefKw EnumTyDef = "pub enum"
6161
printTyDefKw SynonymTyDef = "pub type"
6262

6363
debugMacro :: R.QTraitName
64-
debugMacro = R.qLibRef R.MkTraitName "std" "fmt" "Debug"
64+
debugMacro = R.qForeignRef R.MkTraitName "std" ["fmt"] "Debug"
6565

6666
cloneMacro :: R.QTraitName
67-
cloneMacro = R.qLibRef R.MkTraitName "std" "clone" "Clone"
67+
cloneMacro = R.qForeignRef R.MkTraitName "std" ["clone"] "Clone"
6868

6969
phantomData :: R.QTyName
70-
phantomData = R.qLibRef R.MkTyName "std" "marker" "PhantomData"
70+
phantomData = R.qForeignRef R.MkTyName "std" ["marker"] "PhantomData"
7171

7272
box :: R.QTyName
73-
box = R.qLibRef R.MkTyName "std" "boxed" "Box"
73+
box = R.qForeignRef R.MkTyName "std" ["boxed"] "Box"
7474

7575
boxed :: Doc ann -> Doc ann
7676
boxed doc = R.printRsQTyName box <> angles doc

0 commit comments

Comments
 (0)