да, это сам принцип хвостовой рекурсии. он понятен. мне не понятна вот эта часть.
sizeCont treeLeft (fun leftSize ->
sizeCont treeRight (fun rightSize ->
cont (leftSize + rightSize))
то есть эта конструкция вычисляет аргумент, который передается в след кадр.
ну смотри, мы рекурсивно (в последней позициии) вычисляем длину левого сабдерева, и передаем туда континуейшн
рекурсия здесь хвостовая
В континуейшнее мы довычисляем правое сабдерево и передаем континуейшн чтобы вычислить окончательно сумму длин левого и правого сабдерева