extensional type theory