added type definitions for functions and operators