the when implementation is picked up as tailrec
# functional
p
the when implementation is picked up as tailrec