@@ -85,21 +85,26 @@ reservedWords =
8585
8686moduleName :: (Row -> Col -> x) -> Parser x Name.Name
8787moduleName toError =
88− P.Parser $ \(P.State pos end indent row col) cok _ _ eerr ->
88+ P.Parser $ \(P.State pos end indent row col) cok _ cerr eerr ->
8989 let
9090 (# pos1, col1 #) = chompUpper pos end col
91− (# status, newPos, newCol #) = moduleNameHelp pos1 end col1
9291 in
93− case status of
94− Good ->
95− let
96− !name = Name.fromPtr pos newPos
97− !newState = P.State newPos end indent row newCol
98− in
99− cok name newState
100−
101− Bad ->
102− eerr row newCol toError
92+ if pos == pos1 then
93+ eerr row col toError
94+ else
95+ let
96+ (# status, newPos, newCol #) = moduleNameHelp pos1 end col1
97+ in
98+ case status of
99+ Good ->
100+ let
101+ !name = Name.fromPtr pos newPos
102+ !newState = P.State newPos end indent row newCol
103+ in
104+ cok name newState
105+
106+ Bad ->
107+ cerr row newCol toError
103108
104109
105110data ModuleNameStatus