The day before, pod the beans. Bring a large saucepan of water to the boil and have ready a bowl of iced water. Drop the beans into the water, return to a rolling boil (2-3 minutes), drain and plunge them into the iced water to cool (about 2 minutes). Drain, then squeeze each one between your thumb and forefinger to skin them. Keep covered in the fridge.
Make the gravy. Heat 2 tbsp of the olive oil in a pan, add the carrot, onion, celery and garlic and brown them for 10-15 minutes. Stir in the sugar and tomato purée and let this brown too, then pour in 4 tbsp vinegar and reduce to a syrupy glaze. Tip in the wine and scrape up all the juices, then add the thyme or rosemary and the stock and simmer for 10-15 minutes. Strain, leave to cool, cover and keep in the fridge.
One and a half hours before serving, preheat the oven to 240C/gas 9/fan 220C. Rub the lamb very well with salt, pepper and the remaining olive oil, then put it on a rack in a heavy roasting tin and roast for 45 minutes for very rare. Test by pushing a skewer into the centre of the meat – the tip should come out cool but not cold. Leave the meat to rest in the oven with the door left open a little and the temperature turned down to 110C/ gas 1⁄4/fan 90C. After 15 minutes the meat should be an even rosy pink.
Melt the butter in a saucepan, add a pinch of sugar, the mint, a good pinch of salt and 1 tsp wine vinegar. Stew for a minute, then tip in the beans and 2-3 tbsp water and stew for 2-3 minutes more.
Reheat the gravy in a saucepan, tipping in any meat juices.
To serve, carve the lamb into thick slices. Put 2-3 slices on each plate with the beans and gravy. Serve with buttered new potatoes.