A Core Calculus for Type-safe Product Lines of C Programs | Synapse