module Spruz::PartialApplication

def self.included(modul)

with its Proc#arity method.
If this module is included into a Proc (or similar object), it tampers
def self.included(modul)
  modul.module_eval do
    old_arity = instance_method(:arity)
    define_method(:arity) do
      @__arity__ or old_arity.bind(self).call
    end
  end
  super
end