Hide stack management in Indigo further
Clarification and motivation
Indigo's main goal is to hide stack management from the user. While it is achieved to some extent, there are still many cases when one has to care about stack management. The main reason for that is presence of inp
and out
type parameters in IndigoM
(input and output stacks). So whenever I write an Indigo function, I have to specify inp
and out
which is already quite bothersome.
Also DestroyPrefix
constraint often forces developers to specify some stack types explicitly. For instance, that happens with toLorentzFun2Args
. Take a look at AbstractLedger
implementation in !167 (merged), it has the following definition: transfer = toLorentzFun2Args @'[ Storage ] transfer'
. Contract writer doesn't want to care about the @'[ Storage ]
part. Another issue about DestroyPrefix
is #41 (closed)
Ideally we would like to provide interface without these type parameters at all, but that's probably too optimistic at this point.
Acceptance criteria
Think about possibilities to hide type parameters that carry input and output stack types from Indigo contract writers. Propose something, discuss, maybe implement.