I would like to know why certain types are defined multiple times in different packages and whether that's suppose to dictate which types to use for on-chain code and which for off-chain code?
Example: Address type exists in the following packages:
Plutus.V1.Ledger.Address
Ledger.Address