Peel and quarter the potatoes. Peel and coarsely shred (grate) the carrots. Peel and dice the onion.
In a large saucepan, cover the potatoes and carrots with 2" (5cm) of cold water and bring to a boil over a high heat. Reduce the heat and simmer until the potatoes are tender (about 15-20 minutes).
Meanwhile, cook the bacon in a large skillet over medium heat until it is crisp, then drain it well on paper towels. Discard all but 1 tablespoon of the bacon drippings from skillet, add the oil and chopped onion and sauté gently for 10-12 minutes until the onion has softened and is very lightly browned. Stir in the thyme and cook for a further 2 minutes.
When the potatoes are fork-tender, drain them and transfer them to a large bowl. Add the milk, butter, and salt and mash with a potato masher until the mixture is smooth (there should be small flecks of carrot visible). Stir in the onions then crumble the bacon over the top. Serve immediately.