@@ -24,7 +24,9 @@ module Language.PureScript.Parser.Declarations (
26import Data.Maybe (isJust, fromMaybe)
26import Data.Maybe (isJust, fromMaybe)
27import Control.Applicative
28import Control.Applicative
29+import Control.Arrow ((+++))
29import Language.PureScript.Parser.State
31import Language.PureScript.Parser.State
30import Language.PureScript.Parser.Common
32import Language.PureScript.Parser.Common
@@ -365,7 +367,12 @@ parseBooleanBinder :: P.Parsec String ParseState Binder
365parseBooleanBinder = BooleanBinder <$> booleanLiteral
367parseBooleanBinder = BooleanBinder <$> booleanLiteral
367parseNumberBinder :: P.Parsec String ParseState Binder
369parseNumberBinder :: P.Parsec String ParseState Binder
368−parseNumberBinder = NumberBinder <$> C.integerOrFloat
370+parseNumberBinder = NumberBinder <$> (C.lexeme sign <*> C.integerOrFloat)
372+ sign :: P.Parsec String ParseState (Either Integer Double -> Either Integer Double)
373+ sign = (P.char '-' >> return (negate +++ negate))
374+ <|> (P.char '+' >> return id)
370parseVarBinder :: P.Parsec String ParseState Binder
377parseVarBinder :: P.Parsec String ParseState Binder
371parseVarBinder = VarBinder <$> C.parseIdent
378parseVarBinder = VarBinder <$> C.parseIdent