In a large pot of boiling, salted water cook the pasta until it is just past al dente. Approximately 10 minutes.
While the pasta is cooking, in a separate pot, melt the butter. Lightly sweat the onions and garlic for 2 minutes. Whisk in the flour keep stirring for about five minutes. Control the heat so the flour does not brown.
Stir in the milk, bay leaf, and paprika. Bring to a boil and simmer for ten minutes and remove the bay leaf.
Stir in the cheese and dijon. Season with salt and pepper.
When all the cheese is melted, serve.
If you are serving family style, garnish the platter with extra cheddar and parmesan. You can also elevate the dish with diced tomatoes, chopped bacon bits, or ham, or even lobster and crab meat.