Explaining recursion to a ghost

My mother’s ashes spread around an old tree on our family farm in Illinois
type pie = 
| Apple
| Cherry
| KeyLime
| BananaCream
| Rhubarb
let step ?step_number:(n=25) () =
let i = ref n in
while
!i <> 0 do
decr i;
print_endline @@ "Stepping down to " ^ (string_of_int !i)
done
in
step()
type step =
| Bottom
| Ledge of step
let rec descend =
function
| Bottom -> ()
| Ledge step ->
print_endline "Stepping down...";
descend step

~$ whoami

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store