Add customized Lorentz and/or Prelude module for Indigo and use it
Clarification and motivation
In internal Indigo
modules (i. e. in modules that implement Indigo
) we typically have
import Lorentz hiding (get, return, (>>))
import Prelude hiding (return, (>>), (>>=))
It is bothersome to hide this stuff everywhere.
- We can add some
Indigo.Lorentz
module that re-exports everything fromLorentz
that we may need inIndigo
but does not export things that are harmful (such as>>
). - We can also add a similar
Indigo.Prelude
module. We importPrelude
explicitly anyway, we can importIndigo.Prelude
instead and avoidhiding
. Maybe we can considerLorentz
part of prelude forIndigo
, but I'd rather refrain from that. - We should also make sure that the user of
Indigo
can just writeimport Indigo
and get all the basic Indigo functionality they need. And normally they shouldn't have to hide anything.
Acceptance criteria
Informally speaking, imports inside Indigo
modules as well as in contracts written using Indigo
should be as boilerplate-less as possible.
Some semi-formal guidance is provided above.