Butter and line a 9-inch/23-cm square deep baking pan. Preheat oven to 160C/fan 140C/325F.
Combine the butter, treacle, and muscovado sugar in a saucepan. Heat gently for about 5 minutes or until the butter melted. Stir to mix.
Stir in the milk. Remove from heat and stir in the eggs until well combined. Set aside.
Mix all the dry ingredients including the chopped ginger in a bowl.
Stir in the butter/milk mixture with a wooden spoon until smooth and well combined.
Pour the batter into the prepared baking pan and bake for 1 hour or until a skewer poked in the centre comes out clean.
Take out of the oven and leave to cool completely in the pan. At this point you can wrap it well in cling film or in an airtight container and store for up to a week.
(Optional) On the day you're going to serve it, mix all the icing ingredients. Drizzle the icing prettily on the cake. Cut into squares.