class Dry::Logic::Operations::Implication

def [](input)

def [](input)
  if left[input]
    right[input]
  else
    true
  end
end

def call(input)

def call(input)
  left_result = left.(input)
  if left_result.success?
    right_result = right.(input)
    Result.new(right_result.success?, id) { right_result.to_ast }
  else
    Result::SUCCESS
  end
end

def operator

def operator
  :then
end

def type

def type
  :implication
end