stmt :: Stream s m Char => ParsecT s u m (Stmt String)
stmt =
    SInputs <$> inputsSpec
    <|>
    SOutputs <$> outputsSpec
    <|>
    do { v <- identifier
       ; _ <- symbol "="
       ; e <- expr
       ; return $ SEquation v e
       }
    <?> "statement"
stmt :: Stream s m Char => ParsecT s u m (Stmt String)
stmt =
    SInputs <$> inputsSpec
    <|>
    SOutputs <$> outputsSpec
    <|>
    do { v <- identifier
       ; _ <- symbol "="
       ; e <- expr
       ; return $ SEquation v e
       }
    <?> "statement"
stmt =
    SInputs <$> inputsSpec
    <|>
    SOutputs <$> outputsSpec
    <|>
    do { v <- identifier
       ; _ <- symbol "="
       ; e <- expr
       ; return $ SEquation v e
       }
    <?> "statement"