Jorge Castillo
10/07/2017, 8:35 AMFree
is to abstract implementation details and be able to easily swap those at runtime / testing time using different interpreters, depending on your needs. You also define your operation tree as an algebraic data type (ADT, using a simple sealed
class in Kotlin) which declares all your operations available