let make l u =
  if l <= u then {lo=l; hi=u}
  else raise_bad (sprintf "lower bound %d must be less than or equal to upper bound %d" l u)