def get_decider_result(rule, original_subtarget, record)
        # must test first
        decider = rule.decider
        case decider.arity
        when 0
          if rule.decider_type == :if
            return decider.() ? BALI_TRUE : BALI_FALSE
          elsif rule.decider_type == :unless
            unless decider.()
              return BALI_TRUE
            else
              return BALI_FALSE
            end
          end
        when 1
          if rule.decider_type == :if
            return decider.(record) ? BALI_TRUE : BALI_FALSE
          elsif rule.decider_type == :unless
            unless decider.(record)
              return BALI_TRUE
            else
              return BALI_FALSE
            end
          end
        when 2
          if rule.decider_type == :if
            return decider.(record, original_subtarget) ? BALI_TRUE : BALI_FALSE
          elsif rule.decider_type == :unless
            unless decider.(record, original_subtarget)
              return BALI_TRUE
            else
              return BALI_FALSE
            end
          end
        end
      end
def get_decider_result(rule, original_subtarget, record)
        # must test first
        decider = rule.decider
        case decider.arity
        when 0
          if rule.decider_type == :if
            return decider.() ? BALI_TRUE : BALI_FALSE
          elsif rule.decider_type == :unless
            unless decider.()
              return BALI_TRUE
            else
              return BALI_FALSE
            end
          end
        when 1
          if rule.decider_type == :if
            return decider.(record) ? BALI_TRUE : BALI_FALSE
          elsif rule.decider_type == :unless
            unless decider.(record)
              return BALI_TRUE
            else
              return BALI_FALSE
            end
          end
        when 2
          if rule.decider_type == :if
            return decider.(record, original_subtarget) ? BALI_TRUE : BALI_FALSE
          elsif rule.decider_type == :unless
            unless decider.(record, original_subtarget)
              return BALI_TRUE
            else
              return BALI_FALSE
            end
          end
        end
      end
check intervention
 what is the result when decider is executed
 rule: the rule object
 original subtarget: raw, unprocessed arugment passed as subtarget