until -package:xmonad-contrib -package:foundation -package:cabal-install-solver -package:free package:Cabal-syntax

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