fun sub r = let fun sub' ls = case ls of [] => | r :: ls =>
  • {[r.Num]} = {[r.Text]}
  • {sub' ls}
    in return {sub' r.Lines} end fun subfrms n = if n <= 0 then else
  • {[n]}:
  • {subfrms (n - 1)}
    fun form n = return
    {subfrms n} One more blank
    {if n > 0 then One fewer blank else } fun main () = form 1