class Prism::AlternationPatternNode

def ===(other)

comparing the value of locations. Locations are checked only for presence.
Implements case-equality for the node. This is effectively == but without
def ===(other)
  other.is_a?(AlternationPatternNode) &&
    (left === other.left) &&
    (right === other.right) &&
    (operator_loc.nil? == other.operator_loc.nil?)
end