`foo(::foo)`— It needs to be able to accept itself...
# random
d
`foo(::foo)`— It needs to be able to accept itself as an argument 🙂 which is the whole problem.