matching.ml: typos
Floats in the ast: convert from string to float earlier to ease comparison and creating new values
Actually allow NaN in ranges:

nan is just lower than any other float value, as ordered by Pervasives.compare
Expand some special float ranges
Allow 'open' ranges with syntax _ .. x and _ .. x

_ .. _ is not allowed (or could be replaced by _ but would allow other types)
"string" .. _ is not allowed yet because there is no way to represent it yet
On floats, the minimum value is nan, the maximum value is infinity (wrt Pervasives.compare)
Cleanup: removed some dead code
maching, mk_failaction_neg: Removed unused to_add output
Should be working with non-overlapping intervals

Not sure what happens with overlapping intervals, the result is surely wrong.