To make the sauce:
In a medium saucepan, melt the butter over medium heat, then stir in the flour and cook to make a blond roux. Slowly add the milk and cream, whisking to avoid lumps, and bring to a simmer, stirring so it does not stick to the bottom of the pan. Once it has thickened properly, shut off heat and add all cheeses and the paprika. Stir until cheese is completely incorporated. Salt to taste.
For the pasta:
In a medium stock pot, bring 3 quarts of water to a boil; season generously with salt. Add the pasta, and cook until tender. Drain the water.
Bring it all together:
Let both the pasta and the sauce cool for about 5 to 10 minutes. Combine the pasta and the sauce, and check again for salt.
Transfer the mixture to a medium casserole dish, and cover evenly with the cheese topping.
Place under broiler until the cheese is melted.