fun pageA () = return A
Forename:
Enter a Surname?
and fromA r = let val forename = r.Forename fun pageB () = return B
Surname: Previous
and pageC' r = pageC (Some r.Surname) and pageC surname = return C

Hello {[forename]}{case surname of None => | Some s => {[s]}}

{case surname of None => Previous | Some _ => Previous}
in if r.EnterSurname then pageB () else pageC None end val main = pageA