Using Categories to Describe State Machines
coot.me