Slice and salt the eggplant, rest 20 minutes, then pat dry and roast with olive oil at 400°F until soft.
Brown the meat with onion and garlic, add tomatoes and cinnamon, and simmer 20 minutes.
Make a thick bechamel: melt butter, whisk in flour, add milk, then stir in cheese and egg yolks off the heat.
Layer half the eggplant in a baking dish, top with the meat sauce, then the remaining eggplant.
Pour the bechamel over the top and smooth it.
Bake at 350°F for 45 minutes until golden; rest 20 minutes before serving.