 
 	// Convient way to apply your grammar to a string
 	public static func parse(source: String) -> DefaultHeterogeneousAST {
-		return STLR.generatedLanguage.build(source: source)
+		return T.generatedLanguage.build(source: source)
 	}
 }

		// number
		case .number:
			return [
					ScannerRule.oneOf(token: T._transient, ["-", "+"],[:].merge(with: annotations)).optional(producing: T._transient),
					CharacterSet.decimalDigits.terminal(token: T._transient).repeated(min: 1, producing: T._transient),
					].sequence(token: T.number, annotations: annotations.isEmpty ? [ : ] : annotations)
		// boolean

					].oneOf(token: T.terminal, annotations: annotations)
		// group
		case .group:
			guard let cachedRule = T.leftHandRecursiveRules[self.rawValue] else {
				// Create recursive shell
				let recursiveRule = RecursiveRule()
				T.leftHandRecursiveRules[self.rawValue] = recursiveRule
				// Create the rule we would normally generate
				let rule = [
					"(".terminal(token: T._transient),
					T.whitespace._rule([RuleAnnotation.void : RuleAnnotationValue.set]).repeated(min: 0, producing: T._transient),
					T.expression._rule(),
					T.whitespace._rule([RuleAnnotation.void : RuleAnnotationValue.set]).repeated(min: 0, producing: T._transient),
					")".terminal(token: T._transient, annotations: [RuleAnnotation.error : RuleAnnotationValue.string("Expected ')'")]),
					].sequence(token: T.group, annotations: annotations.isEmpty ? [ : ] : annotations)
				recursiveRule.surrogateRule = rule
				return recursiveRule
