(command.CommandList children: [ (C {(echo)} {(DQ ('Testing rtop...'))}) (command.Pipeline children: [ (C {(echo)} {(DQ ('let f a => a;'))}) (C {(utop)} {(-init)} {(src/rtop_init.ml)} {(-I)} {($ VSub_DollarName '$HOME')}) (command.Simple words: [{(grep)} {(DQ ("let f : 'a => 'a = <fun>"))}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_RBracket ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('rtop is failing! Failed to evaluate ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\`'>) ('let f a => a;') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\`'>) ) } ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] else_action: [ (command.Pipeline children: [ (C {(echo)} { (DQ ('let f a => 1 + ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (hi) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (';') ) } ) (C {(utop)} {(-init)} {(src/rtop_init.ml)} {(-I)} {($ VSub_DollarName '$HOME')}) (command.Simple words: [{(grep)} {(DQ ('Error: This expression has type'))}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_RBracket ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('rtop is failing! Failed to (correctly) error on ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\`'>) ('let f a => 1 + ') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (hi) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (';') (word_part.EscapedLiteral token:<Lit_EscapedChar '\\`'>) ) } ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) ] ) ] )