operatorAsExpression :: Bool -> HParser Expression
operatorAsExpression storeRange = (do
    (o, r) <- withRange ( fmap Left varsym <|> fmap Right consym 
                      <|> lexBACKQUOTEs (fmap Left varid <|> fmap Right conid))
    let range = if storeRange then r else noRange                      
    return (case o of
        Left  v -> Expression_Variable    range v
        Right c -> Expression_Constructor range c
     )) <?> Texts.parserOperator
operatorAsExpression :: Bool -> HParser Expression
operatorAsExpression storeRange = (do
    (o, r) <- withRange ( fmap Left varsym <|> fmap Right consym 
                      <|> lexBACKQUOTEs (fmap Left varid <|> fmap Right conid))
    let range = if storeRange then r else noRange                      
    return (case o of
        Left  v -> Expression_Variable    range v
        Right c -> Expression_Constructor range c
     )) <?> Texts.parserOperator
operatorAsExpression storeRange = (do
    (o, r) <- withRange ( fmap Left varsym <|> fmap Right consym 
                      <|> lexBACKQUOTEs (fmap Left varid <|> fmap Right conid))
    let range = if storeRange then r else noRange                      
    return (case o of
        Left  v -> Expression_Variable    range v
        Right c -> Expression_Constructor range c
     )) <?> Texts.parserOperator