extensional.py