until -package:hspec -package:protolude -package:classy-prelude -package:numhask package:termonad

until p f yields the result of applying f until p holds.