=~ function (h/t Racket)
foldr, foldl -> reduce