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