@@ -24,8 +24,7 @@ dataConstructorDefP = DataConstructorDef <$> capitalizedIdentifier <*> many data
2424
2525-- data *Either a b* = Left *a* | Right *b*
2626dataConstructorDefArgP :: Parser DataConstructorDefArg
27−dataConstructorDefArgP = parens (DataConstructorDefTypeConstructorArg <$> typeConstructorP) <|>
28− DataConstructorDefTypeConstructorArg <$> typeConstructorP <|>
27+dataConstructorDefArgP = DataConstructorDefTypeConstructorArg <$> (monoTypeConstructorP <|> parens typeConstructorP) <|>
2928 DataConstructorDefTypeVarNameArg <$> uncapitalizedIdentifier
3029
3130-- relation{a Int} in type construction (no tuples parsed)
@@ -44,9 +43,8 @@ attributeAndTypeNameP = AttributeAndTypeNameExpr <$> identifier <*> typeConstruc
4443-- *Either Int Text*, *Int*
4544typeConstructorP :: Parser TypeConstructor
4645typeConstructorP = relationTypeConstructorP <|>
47− TypeVariable <$> uncapitalizedIdentifier <|>
48− ADTypeConstructor <$> capitalizedIdentifier <*> many (parens typeConstructorP <|>
49− monoTypeConstructorP)
46+ ADTypeConstructor <$> capitalizedIdentifier <*> many (monoTypeConstructorP <|> parens typeConstructorP) <|>
47+ monoTypeConstructorP
5048
5149monoTypeConstructorP :: Parser TypeConstructor
5250monoTypeConstructorP = ADTypeConstructor <$> capitalizedIdentifier <*> pure [] <|>