Register machines should be compassable. i.e. I should be able to say:
let doublePlusThreeMachine = doubleMachine.compose(with: plusThreeMachine)
This can be done just by running the second machine at all HALT states of the first machine with the first machine's output as the second's input