Jak uzasadnić bezpieczeństwo stosu w Scala Cats / fs2?

Oto fragment kodu z dokumentacji dla fs2 . Funkcja gojest rekurencyjna. Pytanie brzmi: skąd wiemy, czy można je bezpiecznie nakładać i jak uzasadnić, czy jakakolwiek funkcja jest bezpieczna w stosie? import fs2._ // import fs2._ def tk[F[_],O](n: Long): Pipe[F,O,O] = { def go(s: Stream[F,O], n:...