abstractions/automatons library