Beat the egg yolks with the sugar until frothy, about 10 minutes. Add the rest of the ingredients except the egg whites and the salt, one by one; stirring well each time.
Whip the egg whites and salt together in a dry, clean bowl until they are stiff. Gently fold the egg whites into the chocolate mixture until just combined.
Pour the mixture into a lightly greased pudding basin. Lay a pleated and buttered sheet of greaseproof paper on top of the basin, buttered side down, then lay a pleated sheet of foil over that. Tightly tie string around the edge of the bowl to keep the parchment and foil in place.
Place a trivet or upside-down saucer in the bottom of a large pan. Place the prepared pudding basin on top. Pour in boiling water so that it comes just about halfway up the sides of the pudding bowl. Cover the pad with a lid and place over medium high heat.
Steam for 2 hours, checking to see if the water needs topping up every so often. You can use the skewer test to see if it's cooked by inserting it into the middle of the pudding and if it comes out clean - it's ready.
Turn out onto a flat plate and serve warm with lightly sweetened vanilla whipped cream.