comprehensive support for partial functions