Fixed non-standard lambda usage.
Complete rewrite basically, also an interface change:
function Until is now called until