@@ -64,7 +64,7 @@ parseDataDeclaration = do
64 tyArgs <- many (indented *> kindedIdent)
64 tyArgs <- many (indented *> kindedIdent)
65 ctors <- P.option [] $ do
65 ctors <- P.option [] $ do
66 _ <- lexeme $ indented *> P.char '='
66 _ <- lexeme $ indented *> P.char '='
67− sepBy1 ((,) <$> properName <*> P.many (indented *> parseTypeAtom)) pipe
67+ sepBy1 ((,) <$> properName <*> P.many (indented *> noWildcards parseTypeAtom)) pipe
68 return $ DataDeclaration dtype name tyArgs ctors
68 return $ DataDeclaration dtype name tyArgs ctors
70parseTypeDeclaration :: P.Parsec String ParseState Declaration
70parseTypeDeclaration :: P.Parsec String ParseState Declaration
@@ -76,7 +76,7 @@ parseTypeSynonymDeclaration :: P.Parsec String ParseState Declaration
76parseTypeSynonymDeclaration =
76parseTypeSynonymDeclaration =
77 TypeSynonymDeclaration <$> (P.try (reserved "type") *> indented *> properName)
77 TypeSynonymDeclaration <$> (P.try (reserved "type") *> indented *> properName)
78 <*> many (indented *> kindedIdent)
78 <*> many (indented *> kindedIdent)
79− <*> (lexeme (indented *> P.char '=') *> parsePolyType)
79+ <*> (lexeme (indented *> P.char '=') *> noWildcards parsePolyType)
81parseValueDeclaration :: P.Parsec String ParseState Declaration
81parseValueDeclaration :: P.Parsec String ParseState Declaration
82parseValueDeclaration = do
82parseValueDeclaration = do
@@ -106,16 +106,16 @@ parseExternDeclaration = P.try (reserved "foreign") *> indented *> reserved "imp
106 <|> (do reserved "instance"
106 <|> (do reserved "instance"
107 name <- parseIdent <* lexeme (indented *> P.string "::")
107 name <- parseIdent <* lexeme (indented *> P.string "::")
108 deps <- P.option [] $ do
108 deps <- P.option [] $ do
109− deps <- parens (commaSep1 ((,) <$> parseQualified properName <*> P.many parseTypeAtom))
109+ deps <- parens (commaSep1 ((,) <$> parseQualified properName <*> P.many (noWildcards parseTypeAtom)))
111 reservedOp "=>"
111 reservedOp "=>"
112 return deps
112 return deps
113 className <- indented *> parseQualified properName
113 className <- indented *> parseQualified properName
114− tys <- P.many (indented *> parseTypeAtom)
114+ tys <- P.many (indented *> noWildcards parseTypeAtom)
115 return $ ExternInstanceDeclaration name deps className tys)
115 return $ ExternInstanceDeclaration name deps className tys)
116 <|> (do ident <- parseIdent
116 <|> (do ident <- parseIdent
117 js <- P.optionMaybe (JSRaw <$> stringLiteral)
117 js <- P.optionMaybe (JSRaw <$> stringLiteral)
118− ty <- lexeme (indented *> P.string "::") *> parsePolyType
118+ ty <- lexeme (indented *> P.string "::") *> noWildcards parsePolyType
119 return $ ExternDeclaration (if isJust js then InlineJavascript else ForeignImport) ident js ty))
119 return $ ExternDeclaration (if isJust js then InlineJavascript else ForeignImport) ident js ty))
121parseAssociativity :: P.Parsec String ParseState Associativity
121parseAssociativity :: P.Parsec String ParseState Associativity
@@ -176,7 +176,7 @@ parseTypeClassDeclaration = do
176 reserved "class"
176 reserved "class"
177 implies <- P.option [] $ do
177 implies <- P.option [] $ do
179− implies <- parens (commaSep1 ((,) <$> parseQualified properName <*> P.many parseTypeAtom))
179+ implies <- parens (commaSep1 ((,) <$> parseQualified properName <*> P.many (noWildcards parseTypeAtom)))
180 reservedOp "<="
180 reservedOp "<="
181 return implies
181 return implies
182 className <- indented *> properName
182 className <- indented *> properName
@@ -191,12 +191,12 @@ parseTypeInstanceDeclaration = do
191 reserved "instance"
191 reserved "instance"
192 name <- parseIdent <* lexeme (indented *> P.string "::")
192 name <- parseIdent <* lexeme (indented *> P.string "::")
193 deps <- P.optionMaybe $ do
193 deps <- P.optionMaybe $ do
194− deps <- parens (commaSep1 ((,) <$> parseQualified properName <*> P.many parseTypeAtom))
194+ deps <- parens (commaSep1 ((,) <$> parseQualified properName <*> P.many (noWildcards parseTypeAtom)))
196 reservedOp "=>"
196 reservedOp "=>"
197 return deps
197 return deps
198 className <- indented *> parseQualified properName
198 className <- indented *> parseQualified properName
199− ty <- P.many (indented *> parseTypeAtom)
199+ ty <- P.many (indented *> (noWildcards parseTypeAtom))
200 members <- P.option [] . P.try $ do
200 members <- P.option [] . P.try $ do
201 indented *> reserved "where"
201 indented *> reserved "where"
202 mark (P.many (same *> positioned parseValueDeclaration))
202 mark (P.many (same *> positioned parseValueDeclaration))