Vitalsource Technologies, Inc. Type Systems For Distributed Programs: Components And Sessions