This is a philosophical question, but what advantages are there to defining private functions? You can’t test them, you can’t even put a doc-block on them. I figure that alone is enough to make me wonder why they exist. Back in the old Perl days, the “private-ish” functions would begin with an underscore, but it was up to you as to whether or not you risked using them. Granted, that can spell trouble in OO land, but I don’t see that as much of a problem for a functional language.
Why does defp exist?