Shread the cheeses; Gruyère Cheese and Swiss Cheese. You may use more or less, but I think this is a perfect amount. I like shredding my own cheese and it melts even better when you do it.
Melt the butter over low heat in a small saucepan and add the flour all at once, stirring with a wooden spoon for 2 minutes. Add milk; bring to a simmer. Cook, whisking frequently, until sauce thickens, about 5 minutes. Remove from heat. Add the salt, pepper, grated Gruyere, and the Parmesan and set aside.
For Croque-Madame add a fried sunny side up egg on the top and serve.