I’ve never been a fan of HFs implementation. This is a beautiful API at exactly the right level of abstraction.
I’ll give this a try on my next project.