Chains this command with second one.
the output type of the second command
the command to chain with this one. May not be
a MutationCommand with the functionality of this one
The name of this command.
The transformation function for this command.
a new transformed data structure. May be
(mutationFunction: MutationCommand[T, U]).apply(t)
Throwable if any exceptional case occurs
Immutability of the data structure cannot be enforced. Therefore ensuring immutability (or at least apparent immutability) lies in the responsibility of the user.