grate_expr :: Parser (AST' Text)
integrate_expr =
    reserved "integrate"
    *> (Integrate
        <$> identifier
        <*  symbol "from"
        <*> expr
        <*  symbol "to"
        <*> expr
        <*> semiblockExpr
        )

su
integrate_expr :: Parser (AST' Text)
integrate_expr =
    reserved "integrate"
    *> (Integrate
        <$> identifier
        <*  symbol "from"
        <*> expr
        <*  symbol "to"
        <*> expr
        <*> semiblockExpr
        )
integrate_expr =
    reserved "integrate"
    *> (Integrate
        <$> identifier
        <*  symbol "from"
        <*> expr
        <*  symbol "to"
        <*> expr
        <*> semiblockExpr
        )