module Tins::ProcPrelude

def map_apply(my_method, *args, &my_proc)

def map_apply(my_method, *args, &my_proc)
  my_proc or raise ArgumentError, 'a block argument is required'
  lambda { |x, y| my_proc.call(x, y.__send__(my_method, *args)) }
end