I’ve used Quil for a couple of hobby projects. It’s a great system and you should check it out. However, I’ve always had a small problem with how imperative it is. While writing programs using it, I inevitably put a functional wrapper around it.
Luckily, a recent version has a “functional mode” using the new Quil middleware system to make the library more functional. It’s essentially how I would want it, so I think I’m going to use that from now on.