Fix edge case with negative values in replicateM

This treats negative numbers the same as 0, rather than blowing the
stack. I used >= 1 because we are using a number which could
unfortunately be a floating point, so this basically rounds down in that
extreme edge case. Ideally this would use nats or integers but thats a
separate issue.