Isomorphisms of Types: from ?-calculus to information retrieval and language design (Progress in Theoretical Computer Science)