Language subsets have ample precedent in computer science. One example is MISRA C , a subset of the C programming language that aims to eliminate "known undefined or otherwise dangerous behavior" . Another example is the subset of JavaScript described by Crockford whose purpose is to "chip away at the features that are not beautiful until the language's true nature reveals itself." . Language subsets arise for two main reasons. First, designing a language presents many opportunities to introduce errors small and large. Second, popular languages inevitably bring with them many users with diverse problems that demand new features. Some of these features cause future problems of their own. A language subset can improve both situations by eliminating the most problematic features.