StatementBuilder and ExpressionBuilder should contain an inkwell Builder instance instead of needing one passed in to every function.
To make this work safely, first one should store the "obvious" builder instance at creation time, and make sure that a different Builder argument is never passed in to a function, and only then delete the Builder argument.
If it turns out that passing around different inkwell Builders makes sense, it should be replaced by creating a new compiler Builder object with the updated payload
StatementBuilderandExpressionBuildershould contain an inkwell Builder instance instead of needing one passed in to every function.To make this work safely, first one should store the "obvious" builder instance at creation time, and make sure that a different Builder argument is never passed in to a function, and only then delete the Builder argument.
If it turns out that passing around different inkwell Builders makes sense, it should be replaced by creating a new compiler Builder object with the updated payload