Task
📝 **Task:** Predict the exact output. \`fn(x)\` doubles its input and is wrapped with \`@cache\`. Six prints in order: (1) \`fn(5)\`, (2) repeat \`fn(5)\`, (3) \`fn.cache_info()\`, (4) try \`fn([1, 2, 3])\` — a list, catch the TypeError, (5) \`fn((1, 2))\` — a tuple, (6) \`fn.cache_info()\` again.
📋 Implement the function above. Tests run automatically.
💡 **Hint:** Re-read the theory if you get stuck.