A compiled operation chain. The chain is immutable (cannot be modified after
it was compiled). This is a self contained object - once built it can be
used at any time to invoke the operations in the chain. Not that the chain
must be executed on a context compatible with the one used for compiling
(which provides the same input type)