better number matching for scheme