Prepare the three fillings by mixing the ingredients for each in a bowl and set aside. For the date filling, knead the dates with the butter until soft. Break off a piece and roll into a log about 10 cm long. Bring the ends together to form a ring shape of about a 4 cm diameter. Proceed until all are done and set aside.
In a large bowl put the semolina, sugar and and mahlab and mix well. Pour in the melted butter and mix in with your fingertips coating completely. Sprinkle on the yeast and sugar to incorporate. Gradually pour in the slightly warmed milk and mix until it forms a dough. It should be soft and pliable, and not sticky. You may not use all of the milk.
For the nut-filled maamoul, take a piece of dough of about the size of a walnut and cup it in one hand. With your thumb poke a hole in the centre to make a well. Using your thumb on the inside and your index finger on the outside, work the dough upwards to thin it out gradually into a shell. Place a teaspoonful of the nut filling in the well. Bring the edges together to cover the filling completely. Smooth out and turn over the filled pastry. With the pincher proceed to decorate the shell without piercing and exposing the filling. Make your pistachio-filled ones oval and your walnut-filled ones round. Place on a baking sheet.
For the date-filled maamoul, take a walnut-sized piece of dough and flatten in the palm of your hand. Place a prepared date ring in the center and fold the edges over to enclose completely towards the centre. Follow the shape of the date ring and pinch the centre to make a hole in the middle. It will look like a filled doughnut. Turn the seam side down. Grab hold of the pastry in one hand and proceed to use the pincher to decorate (see above). Place on a baking sheet
Preheat oven to 190°C.
Bake for about 15–20 minutes. The maamoul should only be slightly coloured. Remove and cool completely before dusting with icing sugar. Store cooled pastries in an airtight container without the icing sugar