use Cython type inference