cut bread into 1 inch cubes, place in ungreased 13x9-inch pan and either dry in warm oven for a couple of hours, toast lightly in 350°F oven (preferred), or toast in 350°F oven till light brown and dry.
Chop or puree raisins.
Sift or sieve sugar, spices and salt into a plastic bag and shake to mix.
Heat milk, butter, eggs, yolks, raisins and sugar mixture in a sauce pan on low heat stirring constantly until butter's melted and sugar is dissolved, remove from heat if steam starts to appear.
(You don't want to cook the eggs just yet!)
Remove from heat, stir in vanilla and immediately pour custard over dried bread.
If desired strain mixture with a fine strainer to remove raisins and any egg chalazae.
Mix and press down on bread to be sure it's all covered.
Preheat oven to 350°F.
Allow custard to soak into bread cubes until cooled (about an hour).
Occasionally stirring to evenly distribute mixture.
Can be refrigerated for up-to 12 hours at this point.
Bake in 350°F oven for 50-60 minutes (top will be browned and pudding should start to rise out of the pan).
Add a cup of toasted and chopped pecans or walnuts to custard.
Replace 1/2 tbsp of the vanilla with another extract or liquor.
Add some white, cinnamon or chocolate chips to custard.
Replace 1/2 of the milk with heavy cream or 1/2 and 1/2 (makes it rich!).
Use skim milk, delete butter, use whole wheat bread, reduce sugar to 1 cup, replace eggs/yolks with egg substitute for a "healthy version".
Add some dried apple or banana to custard.
Use 1 cup of sugar and add 1/2 cup of maple syrup.