Chop the chocolate into small pieces and place in a bowl set over a pan of simmering water, making sure the water doesn’t touch the base of the bowl. Leave to melt.
Put the egg yolks and caster sugar in a separate bowl and whisk with an electric beater for about 5 minutes, until the mixture is thick enough to leave a trail on the surface when the whisk is lifted.
Place the milk, cream and cocoa powder in a heavy-based saucepan and bring slowly to the boil, whisking occasionally to prevent the cocoa powder sticking to the bottom of the saucepan. Pour it over the egg yolk mixture, whisking constantly to prevent curdling. Then return the mixture to the saucepan and add the melted chocolate. Cook over a low heat for around 8 minutes, stirring constantly. Remove from the heat and set aside.
To make the caramel, place the sugar and water in a small, deep, heavy-based saucepan and bring slowly to the boil, stirring to dissolve the sugar. Raise the heat and simmer, without stirring, until a very dark caramel is achieved. Remove from the heat and whisk the hot caramel into the ice cream base a little at a time.
Pour through a fine sieve into a plastic container, then cool down quickly in an ice bath (a large bowl filled with ice cubes is fine). Leave in the fridge for 2 days before churning in an ice-cream machine. Once churned, leave for 3-4 days before eating. I know this might prove difficult but it does improve in flavour.