Cook elbow macaroni in plenty of salted boiling water for 2 minutes less than the package calls for, until noodles are soft but still firm. Drain and rinse under cool water until macaroni is no longer warm. Set aside to drain completely.
Place a large 10" or 12" deep-sided skillet over medium heat and melt butter. Sprinkle flour evenly over butter and whisk until combined. Cook the flour approx. 1 minute, stirring constantly then slowly whisk in milk until no lumps of flour remain. Allow liquid to come to a bubble, stirring frequently then reduce heat to medium-low and simmer 3 minutes.
Stir in salt, dry mustard and paprika until completely combined then begin adding cheeses, one handful at a time. Stir until each addition of cheese has melted before adding the next. Continue this process until all of the cheese has been melted into the sauce.
Give the macaroni a stir to separate any pasta that’s sticking together then add it to the sauce. Stir to coat the macaroni in the cheese sauce and continue heating on medium-low until everything is nice and hot. Remove from heat and allow mac and cheese to rest 5 minutes so the sauce can thicken slightly. Serve and enjoy!
Notes
Treat yourself to a good cheese! Besides Gruyere, you can try a high-grade Swiss or Monterey Jack—they’re all mild, creamy and will melt easily.