Computation Structures Stephen A Ward