cfsm Compile-time finite state machine. User provides list of valid transitions. All other (invalid) transitions will be treated as error by the compiler.