@@ -128,7 +128,9 @@ parseNameAndType p = (,) <$> (indented *> (lname <|> stringLiteral) <* indented
128parseRowEnding :: TokenParser Type
128parseRowEnding :: TokenParser Type
129parseRowEnding = P.option REmpty $ indented *> pipe *> indented *> P.choice (map P.try
129parseRowEnding = P.option REmpty $ indented *> pipe *> indented *> P.choice (map P.try
130 [ parseTypeWildcard
130 [ parseTypeWildcard
131− , TypeVar <$> identifier ])
131+ , TypeVar <$> identifier
132+ , parseTypeConstructor
133+ , parens parseRow ])
133parseRow :: TokenParser Type
135parseRow :: TokenParser Type
134parseRow = (curry rowFromList <$> commaSep (parseNameAndType parsePolyType) <*> parseRowEnding) P.<?> "row"
136parseRow = (curry rowFromList <$> commaSep (parseNameAndType parsePolyType) <*> parseRowEnding) P.<?> "row"