substitute now point-free