Why are we duplicating the function signature? Is this some trick to avoid some cython annoyance?