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