(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'OPAM_DEPENDS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'OPAM_DEPENDS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPAM_DEPENDS='> name:OPAM_DEPENDS)
          op: assign_op.Equal
          rhs: {(DQ <'ocamlfind hevea'>)}
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: 
        (case_arg.Word
          w: {(DQ ($ Id.VSub_DollarName OCAML_VERSION) <','> ($ Id.VSub_DollarName OPAM_VERSION))}
        )
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <3.12.1>
          pattern: (pat.Words words:[{<3.12.1> <Id.Lit_Comma ','> <1.0.0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ppa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ppa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppa='> name:ppa)
                  op: assign_op.Equal
                  rhs: {<'avsm/ocaml312'> <Id.Lit_Other '+'> <opam10>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <3.12.1>
          pattern: (pat.Words words:[{<3.12.1> <Id.Lit_Comma ','> <1.1.0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ppa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ppa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppa='> name:ppa)
                  op: assign_op.Equal
                  rhs: {<'avsm/ocaml312'> <Id.Lit_Other '+'> <opam11>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <4.00.1>
          pattern: (pat.Words words:[{<4.00.1> <Id.Lit_Comma ','> <1.0.0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ppa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ppa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppa='> name:ppa)
                  op: assign_op.Equal
                  rhs: {<'avsm/ocaml40'> <Id.Lit_Other '+'> <opam10>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <4.00.1>
          pattern: (pat.Words words:[{<4.00.1> <Id.Lit_Comma ','> <1.1.0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ppa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ppa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppa='> name:ppa)
                  op: assign_op.Equal
                  rhs: {<'avsm/ocaml40'> <Id.Lit_Other '+'> <opam11>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <4.01.0>
          pattern: (pat.Words words:[{<4.01.0> <Id.Lit_Comma ','> <1.0.0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ppa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ppa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppa='> name:ppa)
                  op: assign_op.Equal
                  rhs: {<'avsm/ocaml41'> <Id.Lit_Other '+'> <opam10>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <4.01.0>
          pattern: (pat.Words words:[{<4.01.0> <Id.Lit_Comma ','> <1.1.0>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ppa='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ppa='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ppa='> name:ppa)
                  op: assign_op.Equal
                  rhs: {<'avsm/ocaml41'> <Id.Lit_Other '+'> <opam11>}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [
                    {<echo>}
                    {<Unknown>}
                    {($ Id.VSub_DollarName OCAML_VERSION) <Id.Lit_Comma ','> 
                      ($ Id.VSub_DollarName OPAM_VERSION)
                    }
                  ]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Simple
          blame_tok: <echo>
          more_env: []
          words: [{<echo>} {(DQ <yes>)}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <sudo>
          more_env: []
          words: [{<sudo>} {<add-apt-repository>} {<ppa> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName ppa)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _>]
    )
    (command.Simple
      blame_tok: <sudo>
      more_env: []
      words: [{<sudo>} {<apt-get>} {<update>} {<-qq>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <sudo>
      more_env: []
      words: [
        {<sudo>}
        {<apt-get>}
        {<install>}
        {<-qq>}
        {<ocaml>}
        {<ocaml-native-compilers>}
        {<camlp4-extra>}
        {<opam>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <sudo>
      more_env: []
      words: [{<sudo>} {<apt-get>} {<install>} {<-qq>} {<texlive>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<Id.Lit_VarLike 'OPAMYES='> <1>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [{<export>} {<Id.Lit_VarLike 'OPAMVERBOSE='> <1>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<OCaml>} {<version>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <ocaml>
      more_env: []
      words: [{<ocaml>} {<-version>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {<OPAM>} {<versions>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <opam>
      more_env: []
      words: [{<opam>} {<--version>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <opam>
      more_env: []
      words: [{<opam>} {<--git-version>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <opam>
      more_env: []
      words: [{<opam>} {<init>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <opam>
      more_env: []
      words: [{<opam>} {<install>} {(${ Id.VSub_Name OPAM_DEPENDS)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <eval>
      more_env: []
      words: [
        {<eval>}
        {
          (CommandSub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Simple
                blame_tok: <opam>
                more_env: []
                words: [{<opam>} {<config>} {<env>}]
                redirects: []
                do_fork: T
              )
            right: <Id.Backtick_Right '`'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <'./configure'>
      more_env: []
      words: [{<'./configure'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<make> more_env:[] words:[{<make>}] redirects:[] do_fork:T)
    (command.Simple
      blame_tok: <make>
      more_env: []
      words: [{<make>} {<test>} {<Id.Lit_VarLike 'VERBOSE='> <1>}]
      redirects: []
      do_fork: T
    )
  ]
)