I hate to be the bearer of bad news but, the most probable cause would be a blown head gasket. Has the engine ever been overheated at any point? This will usually cause this problem. The mechanic should carefully look over the engine block to make sure there are no cracks in the cylinder walls, and check the cylinder head for cracks and warpage. The head gasket seats between the block and the head. There are 2 heads on your engine. If the block is cracked, then you will need a short block, and recommend rebuilt heads as well. Make sure they look it over really good, and I also recommend a new radiator cap, and thermostat. This is the most common cause of overheating.
it could also be bad intake gaskets on the 3.1, I had the same problem with oil in coolant, so I changed intake gaskets, flushed out system, put in new thermotat that was 3 months ago, and the car is still fine. no more oil in coolant!!
Intake gaskets on the 3.1 and 3.4 GM engines are the primary cause of coolant in the oil (just did my brother's today). He didn't overheat his so the head gaskets were ok. Had to change the oil three times before stopped looking like choclate milk. Used the LIS48500 Push rod tool to make the job easier.