Handling complex type signatures