Easily compose functions with multiple type signatures