In a large saucepan, heat the olive oil and butter over medium heat until the butter starts to foam. Add the spices, ginger, tamarind (if using) and garlic and cook for about 1 minute until fragrant.
Add the stock and bring to a gentle bubble. Add the lentils and carrots and leave to cook for 15–20 minutes, or until the carrots are tender and can be easily pierced with a knife.
Add the coconut milk (reserve a tablespoon or two for serving), stir through, remove the saucepan from the heat and allow to cool for about 10 minutes before blending until smooth.
Divide the soup between warmed bowls, garnish with a drizzle of coconut milk, and then scatter over a few nuts and/or coconut shavings, and alittle roughly chopped fresh coriander before serving immediately. Squeeze over fresh lime juice to taste.