@@ -96,7 +96,7 @@ moduleHeader :: IdrisParser (Maybe (Docstring ()), [String])
9696moduleHeader = try (do docs <- optional docComment
9797 noArgs docs
9898 reserved "module"
99− i <- identifier
99+ i <- fst <$> identifier
100100 option ';' (lchar ';')
101101 return (fmap fst docs, moduleName i))
102102 <|> try (do lchar '%'; reserved "unqualified"
@@ -118,8 +118,8 @@ import_ :: IdrisParser (Bool, String, Maybe String, FC)
118118import_ = do fc <- getFC
119119 reserved "import"
120120 reexport <- option False (do reserved "public"; return True)
121− id <- identifier
122− newName <- optional (reserved "as" *> identifier)
121+ id <- fst <$> identifier
122+ newName <- optional (reserved "as" *> (fst <$> identifier))
123123 option ';' (lchar ';')
124124 return (reexport, toPath id, toPath <$> newName, fc)
125125 <?> "import statement"
@@ -356,11 +356,11 @@ SyntaxSym ::= '[' Name_t ']'
356356@
357357 -}
358358syntaxSym :: IdrisParser SSymbol
359−syntaxSym = try (do lchar '['; n <- name; lchar ']'
359+syntaxSym = try (do lchar '['; n <- fst <$> name; lchar ']'
360360 return (Expr n))
361− <|> try (do lchar '{'; n <- name; lchar '}'
361+ <|> try (do lchar '{'; n <- fst <$> name; lchar '}'
362362 return (Binding n))
363− <|> do n <- iName []
363+ <|> do n <- fst <$> iName []
364364 return (Keyword n)
365365 <|> do sym <- fmap fst stringLiteral
366366 return (Symbol sym)
@@ -402,7 +402,7 @@ fnDecl' syn = checkFixity $
402402 opts <- fnOpts initOpts
403403 acc <- optional accessibility
404404 opts' <- fnOpts opts
405− n_in <- fnName
405+ n_in <- fst <$> fnName
406406 let n = expandNS syn n_in
407407 fc <- getFC
408408 lchar ':'
@@ -489,7 +489,7 @@ fnOpts opts
489489 <|> return opts
490490 <?> "function modifier"
491491 where nameTimes :: IdrisParser (Name, Maybe Int)
492− nameTimes = do n <- fnName
492+ nameTimes = do n <- fst <$> fnName
493493 t <- option Nothing (do reds <- fmap fst natural
494494 return (Just (fromInteger reds)))
495495 return (n, t)
@@ -515,7 +515,7 @@ postulate syn = do (doc, ext)
515515 opts <- fnOpts initOpts
516516 acc <- optional accessibility
517517 opts' <- fnOpts opts
518− n_in <- fnName
518+ n_in <- fst <$> fnName
519519 let n = expandNS syn n_in
520520 lchar ':'
521521 ty <- typeExpr (allowImp syn)
@@ -592,7 +592,7 @@ Namespace ::=
592592-}
593593namespace :: SyntaxInfo -> IdrisParser [PDecl]
594594namespace syn =
595− do reserved "namespace"; n <- identifier;
595+ do reserved "namespace"; n <- fst <$> identifier
596596 openBlock
597597 ds <- some (decl syn { syn_namespace = n : syn_namespace syn })
598598 closeBlock
@@ -659,7 +659,7 @@ class_ syn = do (doc, argDocs, acc)
659659 return (doc, argDocs, acc))
660660 fc <- getFC
661661 cons <- constraintList syn
662− n_in <- fnName
662+ n_in <- fst <$> fnName
663663 let n = expandNS syn n_in
664664 cs <- many carg
665665 fds <- option (map fst cs) fundeps
@@ -669,12 +669,12 @@ class_ syn = do (doc, argDocs, acc)
669669 <?> "type-class declaration"
670670 where
671671 fundeps :: IdrisParser [Name]
672− fundeps = do lchar '|'; sepBy name (lchar ',')
672+ fundeps = do lchar '|'; sepBy (fst <$> name) (lchar ',')
673673
674674 carg :: IdrisParser (Name, PTerm)
675− carg = do lchar '('; i <- name; lchar ':'; ty <- expr syn; lchar ')'
675+ carg = do lchar '('; i <- (fst <$> name); lchar ':'; ty <- expr syn; lchar ')'
676676 return (i, ty)
677− <|> do i <- name
677+ <|> do i <- fst <$> name
678678 fc <- getFC
679679 return (i, PType fc)
680680
@@ -696,7 +696,7 @@ instance_ syn = do (doc, argDocs)
696696 fc <- getFC
697697 en <- optional instanceName
698698 cs <- constraintList syn
699− cn <- fnName
699+ cn <- fst <$> fnName
700700 args <- many (simpleExpr syn)
701701 let sc = PApp fc (PRef fc cn) (map pexp args)
702702 let t = bindList (PPi constraint) cs sc
@@ -704,7 +704,7 @@ instance_ syn = do (doc, argDocs)
704704 return [PInstance doc argDocs syn fc cs cn args t en ds]
705705 <?> "instance declaration"
706706 where instanceName :: IdrisParser Name
707− instanceName = do lchar '['; n_in <- fnName; lchar ']'
707+ instanceName = do lchar '['; n_in <- fst <$> fnName; lchar ']'
708708 let n = expandNS syn n_in
709709 return n
710710 <?> "instance name"
@@ -748,7 +748,7 @@ NameList ::=
748748usingDeclList :: SyntaxInfo -> IdrisParser [Using]
749749usingDeclList syn
750750 = try (sepBy1 (usingDecl syn) (lchar ','))
751− <|> do ns <- sepBy1 name (lchar ',')
751+ <|> do ns <- sepBy1 (fst <$> name) (lchar ',')
752752 lchar ':'
753753 t <- typeExpr (disallowImp syn)
754754 return (map (\x -> UImplicit x t) ns)
@@ -764,12 +764,12 @@ UsingDecl ::=
764764@
765765-}
766766usingDecl :: SyntaxInfo -> IdrisParser Using
767−usingDecl syn = try (do x <- fnName
767+usingDecl syn = try (do x <- fst <$> fnName
768768 lchar ':'
769769 t <- typeExpr (disallowImp syn)
770770 return (UImplicit x t))
771− <|> do c <- fnName
772− xs <- some fnName
771+ <|> do c <- fst <$> fnName
772+ xs <- some (fst <$> fnName)
773773 return (UConstraint c xs)
774774 <?> "using declaration"
775775
@@ -793,7 +793,7 @@ CAF ::= 'let' FnName '=' Expr Terminator;
793793-}
794794caf :: SyntaxInfo -> IdrisParser PDecl
795795caf syn = do reserved "let"
796− n_in <- fnName; let n = expandNS syn n_in
796+ n_in <- fst <$> fnName; let n = expandNS syn n_in
797797 lchar '='
798798 t <- expr syn
799799 terminator
@@ -829,7 +829,7 @@ rhs :: SyntaxInfo -> Name -> IdrisParser PTerm
829829rhs syn n = do lchar '='; expr syn
830830 <|> do symbol "?=";
831831 fc <- getFC
832− name <- option n' (do symbol "{"; n <- fnName; symbol "}";
832+ name <- option n' (do symbol "{"; n <- fst <$> fnName; symbol "}";
833833 return n)
834834 r <- expr syn
835835 return (addLet fc name r)
@@ -903,7 +903,7 @@ clause syn
903903 symbol "<=="
904904 return ty)
905905 fc <- getFC
906− n_in <- fnName; let n = expandNS syn n_in
906+ n_in <- fst <$> fnName; let n = expandNS syn n_in
907907 r <- rhs syn n
908908 ist <- get
909909 let ctxt = tt_ctxt ist
@@ -955,7 +955,7 @@ clause syn
955955 put (ist { lastParse = Just n })
956956 return $ PWith fc n capp wargs wval pn withs)
957957 <|> do pushIndent
958− n_in <- fnName; let n = expandNS syn n_in
958+ n_in <- fst <$> fnName; let n = expandNS syn n_in
959959 cargs <- many (constraintArg syn)
960960 fc <- getFC
961961 args <- many (try (implicitArg (syn { inPattern = True } ))
@@ -989,7 +989,7 @@ clause syn
989989 <?> "function clause"
990990 where
991991 optProof = option Nothing (do reserved "proof"
992− n <- fnName
992+ n <- fst <$> fnName
993993 return (Just n))
994994
995995 fillLHS :: Name -> PTerm -> [PTerm] -> PClause -> PClause
@@ -1042,7 +1042,8 @@ Codegen ::= 'C'
10421042@
10431043-}
10441044codegen_ :: IdrisParser Codegen
1045−codegen_ = do n <- identifier; return (Via (map toLower n))
1045+codegen_ = do n <- fst <$> identifier
1046+ return (Via (map toLower n))
10461047 <|> do reserved "Bytecode"; return Bytecode
10471048 <?> "code generation language"
10481049
@@ -1091,9 +1092,9 @@ directive syn = do try (lchar '%' *> reserved "lib")
10911092 cgn <- codegen_
10921093 hdr <- fst <$> stringLiteral
10931094 return [PDirective (DInclude cgn hdr)]
1094− <|> do try (lchar '%' *> reserved "hide"); n <- fnName
1095+ <|> do try (lchar '%' *> reserved "hide"); n <- fst <$> fnName
10951096 return [PDirective (DHide n)]
1096− <|> do try (lchar '%' *> reserved "freeze"); n <- iName []
1097+ <|> do try (lchar '%' *> reserved "freeze"); n <- fst <$> iName []
10971098 return [PDirective (DFreeze n)]
10981099 <|> do try (lchar '%' *> reserved "access"); acc <- accessibility
10991100 return [PDirective (DAccess acc)]
@@ -1108,20 +1109,20 @@ directive syn = do try (lchar '%' *> reserved "lib")
11081109 libs <- sepBy1 (fmap fst stringLiteral) (lchar ',')
11091110 return [PDirective (DDynamicLibs libs)]
11101111 <|> do try (lchar '%' *> reserved "name")
1111− ty <- fnName
1112− ns <- sepBy1 name (lchar ',')
1112+ ty <- fst <$> fnName
1113+ ns <- sepBy1 (fst <$> name) (lchar ',')
11131114 return [PDirective (DNameHint ty ns)]
11141115 <|> do try (lchar '%' *> reserved "error_handlers")
1115− fn <- fnName
1116− arg <- fnName
1117− ns <- sepBy1 name (lchar ',')
1116+ fn <- fst <$> fnName
1117+ arg <- fst <$> fnName
1118+ ns <- sepBy1 (fst <$> name) (lchar ',')
11181119 return [PDirective (DErrorHandlers fn arg ns) ]
11191120 <|> do try (lchar '%' *> reserved "language"); ext <- pLangExt;
11201121 return [PDirective (DLanguage ext)]
11211122 <|> do fc <- getFC
11221123 try (lchar '%' *> reserved "used")
1123− fn <- fnName
1124− arg <- iName []
1124+ fn <- fst <$> fnName
1125+ arg <- fst <$> iName []
11251126 return [PDirective (DUsed fc fn arg)]
11261127 <?> "directive"
11271128
@@ -1156,14 +1157,14 @@ provider syn = do doc <- try (do (doc, _) <- docstring syn
11561157 provideTerm doc <|> providePostulate doc
11571158 <?> "type provider"
11581159 where provideTerm doc =
1159− do lchar '('; n <- fnName; lchar ':'; t <- typeExpr syn; lchar ')'
1160+ do lchar '('; n <- fst <$> fnName; lchar ':'; t <- typeExpr syn; lchar ')'
11601161 fc <- getFC
11611162 reserved "with"
11621163 e <- expr syn <?> "provider expression"
11631164 return [PProvider doc syn fc (ProvTerm t e) n]
11641165 providePostulate doc =
11651166 do reserved "postulate"
1166− n <- fnName
1167+ n <- fst <$> fnName
11671168 fc <- getFC
11681169 reserved "with"
11691170 e <- expr syn <?> "provider expression"