class Dry::Logic::Rule::Interface

def define_constant_application

def define_constant_application
  module_exec do
    def call(*)
      if @predicate[]
        Result::SUCCESS
      else
        Result.new(false, id) { ast }
      end
    end
    def [](*)
      @predicate[]
    end
  end
end