Not quite point-free, but still :)