@@ -12,21 +12,21 @@ import Parse.Types
1212import Types.Types (signalOf)
1313
1414foreignDef = do try (reserved "foreign") ; whitespace
15− try importEvent <|> exportEvent
15+ importEvent <|> exportEvent
1616
1717exportEvent = do
18− reserved "export" >> whitespace >> reserved "jsevent" >> whitespace
18+ try (reserved "export") >> whitespace >> reserved "jsevent" >> whitespace
1919 js <- jsVar ; whitespace
2020 elm <- lowVar ; whitespace
2121 hasType ; whitespace
2222 tipe <- typeExpr
2323 case tipe of
2424 ADTPT "Signal" [pt] ->
25− either fail (return . ExportEvent js elm . signalOf) (toForeignType pt)
26− _ -> fail "When exporting events, the exported value must be a Signal."
25+ either error (return . ExportEvent js elm . signalOf) (toForeignType pt)
26+ _ -> error "When exporting events, the exported value must be a Signal."
2727
2828importEvent = do
29− reserved "import" >> whitespace >> reserved "jsevent" >> whitespace
29+ try (reserved "import") >> whitespace >> reserved "jsevent" >> whitespace
3030 js <- jsVar ; whitespace
3131 base <- term <?> "Base case for imported signal (signals cannot be undefined)"
3232 whitespace
@@ -35,15 +35,15 @@ importEvent = do
3535 tipe <- typeExpr
3636 case tipe of
3737 ADTPT "Signal" [pt] ->
38− either fail (return . ImportEvent js base elm . signalOf) (toForeignType pt)
39− _ -> fail "When importing events, the imported value must be a Signal."
38+ either error (return . ImportEvent js base elm . signalOf) (toForeignType pt)
39+ _ -> error "When importing events, the imported value must be a Signal."
4040
4141
4242jsVar :: (Monad m) => ParsecT [Char] u m String
4343jsVar = betwixt '"' '"' $ do
4444 v <- (:) <$> (letter <|> char '_') <*> many (alphaNum <|> char '_')
4545 if v `notElem` jsReserveds then return v else
46− fail $ "'" ++ v ++
46+ error $ "'" ++ v ++
4747 "' is not a good name for a importing or exporting JS values."
4848
4949jsReserveds =