fun center s width = let open StringCvt val len = size s val m = abs (width - len) val (left, right) = (m div 2, m div 2 + m mod 2) in if width < len then substring (s, left, len - left - right) else (padLeft #" " (left + right + len) o padRight #" " (right + len)) s end