Attempt to use Parameterized Monads to define a state machine to make it easy to block out bad states in a graph