Wie kann man über die Stapelsicherheit in Scala Cats / fs2 nachdenken?

Hier ist ein Teil des Codes aus der Dokumentation für fs2 . Die Funktion goist rekursiv. Die Frage ist, woher wissen wir, ob es stapelsicher ist und wie man begründet, ob eine Funktion stapelsicher ist? import fs2._ // import fs2._ def tk[F[_],O](n: Long): Pipe[F,O,O] = { def go(s: Stream[F,O],...