In a large pot, heat the olive oil over medium-high heat.
Add the onion and cook until softened, 3 to 4 minutes.
Stir in the harissa and garlic and cook until fragrant, 1 minute.
Add the carrots, beans, coconut milk, water, and 2 heavy pinches of salt.
Bring to a simmer.
Cover and cook, reducing the heat to maintain a simmer, until the carrots are tender, 30 minutes.
Working in batches, purée the soup until smooth.
Transfer back to the pot and stir in the vinegar.
Taste and adjust the seasoning with salt, then serve.
