    # 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