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)