Discuss: PlutusData meaning for Prelude types
What is PlutusData (toData and fromData) meaning for all Prelude types?
https://github.com/mlabs-haskell/lambda-buffers/blob/26adebd13cb97900cec7fe66cb1dd11977ba77ed/libs/lbf-plutus/Plutus/V1.lbf#L15
-- Instances for Prelude types
-- TODO(bladyjoker): Add other Prelude types (Text, Bytes etc.)?
instance PlutusData Bool
instance PlutusData Integer
instance PlutusData (Maybe a) :- PlutusData a
instance PlutusData (List a) :- PlutusData a
instance PlutusData (Either a b) :- PlutusData a, PlutusData b
These are obvious, but we could theoretically define PlutusData for Prelude Char/Text/Bytes/Map/Set.
Gergely's Rust backend already implements some notion of PlutusData for these types.
Should we complete this?
Options:
Remove Plutus Map and Bytes
Do we need them. For offchain backends like Rust, it doesn't really matter, so we could remove these and just define PlutusData semantics for Prelude Map and Bytes.
For onchain, Plutarch and PlutusTx, I think the same could apply. The codegen configs are separate and they can map Prelude types to equivalent Plutus types.