alt :: HParser Alternative
alt = addRange $
    do fb <- lexCaseFeedback
       return $ \r -> Alternative_Feedback r fb $ Alternative_Hole r (-1)
    <|>
    do
       lexHOLE
       return $ \r -> Alternative_Hole r (-1)
    <|>
    do
        p <- pat
        b <- caseRhs
        return $ \r -> Alternative_Alternative r p b

{-
qual    ->  "let" decls  (local declaration)  
         |  pat "<-" exp  (generator)  
         |  exp  (guard)  
-}
alt :: HParser Alternative
alt = addRange $
    do fb <- lexCaseFeedback
       return $ \r -> Alternative_Feedback r fb $ Alternative_Hole r (-1)
    <|>
    do
       lexHOLE
       return $ \r -> Alternative_Hole r (-1)
    <|>
    do
        p <- pat
        b <- caseRhs
        return $ \r -> Alternative_Alternative r p b

{-
qual    ->  "let" decls  (local declaration)  
         |  pat "<-" exp  (generator)  
         |  exp  (guard)  
-}
alt = addRange $
    do fb <- lexCaseFeedback
       return $ \r -> Alternative_Feedback r fb $ Alternative_Hole r (-1)
    <|>
    do
       lexHOLE
       return $ \r -> Alternative_Hole r (-1)
    <|>
    do
        p <- pat
        b <- caseRhs
        return $ \r -> Alternative_Alternative r p b

{-
qual    ->  "let" decls  (local declaration)  
         |  pat "<-" exp  (generator)  
         |  exp  (guard)  
-}