type -a doesn't list all executable files
Doing type -a python with both bash and fish gives two different results if multiple executables are available in different paths:
$ bash -c 'type -a python'
python is /opt/local/bin/python
python is /usr/bin/python
$ type -a python
python is /opt/local/bin/python