use `on` from Data.Function