# File lib/facets/more/tuple.rb, line 249
    def parse_constraint( constraint, &yld )
      constraint = constraint.strip
      re = %r{^(=~|~>|<=|>=|==|=|<|>)?\s*(\d+(:?[-.]\d+)*)$}
      if md = re.match( constraint )
        if op = md[1]
          op = '=~' if op == '~>'
          op = '==' if op == '='
          val = cast_from_string( md[2], &yld ) #new( md[2] )
        else
          op = '=='
          val = cast_from_string( constraint, &yld ) #new( constraint )
        end
      else
        raise ArgumentError, "invalid constraint"
      end
      return op, val
    end