-
Notifications
You must be signed in to change notification settings - Fork 0
Plutarch: Using s type variable conflicts with the Plutarch scope s variable printed by default #231
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workingcodegenplutarchAll things PlutarchAll things Plutarch
Description
Sample
record ScriptDatum s = {
scriptType : s,
-- ^ Protocol specific script type stored in this UTxO
redeemer : AssetClass
-- ^ Wallet containing `$redeemer` must sign the 'delete-script' transaction as an authorization method
}
derive Eq (ScriptDatum s)
derive PlutusData (ScriptDatum s)
derive Json (ScriptDatum s)
Error
> [1 of 2] Compiling LambdaBuffers.Cardano.Extra.OneShot.Validation.Plutarch ( autogen/LambdaBuffers/Cardano/Extra/OneShot/Validation/Plutarch.hs, dist/build/LambdaBuffers/Cardano/Extra/OneShot/Validation/Plutarch.o, dist/build/LambdaBuffers/Cardano/Extra/OneShot/Validation/Plutarch.dyn_o )
> [2 of 2] Compiling LambdaBuffers.Cardano.Extra.ScriptStorage.Validation.Plutarch ( autogen/LambdaBuffers/Cardano/Extra/ScriptStorage/Validation/Plutarch.hs, dist/build/LambdaBuffers/Cardano/Extra/ScriptStorage/Validation/Plutarch.o, dist/build/LambdaBuffers/Cardano/Extra/ScriptStorage/Validation/Plutarch.dyn_o )
>
> autogen/LambdaBuffers/Cardano/Extra/ScriptStorage/Validation/Plutarch.hs:31:18: error:
> Conflicting definitions for ‘s’
> Bound at: autogen/LambdaBuffers/Cardano/Extra/ScriptStorage/Validation/Plutarch.hs:31:18-38
> autogen/LambdaBuffers/Cardano/Extra/ScriptStorage/Validation/Plutarch.hs:31:40-56
> |
> 31 | data ScriptDatum (s :: Plutarch.PType) (s :: Plutarch.S) = ScriptDatum (Plutarch.Term s (Plutarch.Builtin.PAsData s))
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Workaround
Just use a different letter than s
record ScriptDatum a = {
scriptType : a,
-- ^ Protocol specific script type stored in this UTxO
redeemer : AssetClass
-- ^ Wallet containing `$redeemer` must sign the 'delete-script' transaction as an authorization method
}
derive Eq (ScriptDatum a)
derive PlutusData (ScriptDatum a)
derive Json (ScriptDatum a)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingcodegenplutarchAll things PlutarchAll things Plutarch
Type
Projects
Status
Todo