[{ s =
   (Switch (_,
      (Some (Cond
               { e =
                 (Container (Tuple,
                    (_,
                     [{ e =
                        (Call (
                           { e =
                             (DotAccess (
                                { e =
                                  (N
                                     (Id (("command", _),
                                        { id_resolved = ref (None);
                                          id_resolved_alternatives = ref ([]);
                                          id_type = ref (None);
                                          id_svalue = ref (Unknown);
                                          id_flags = ref (0); id_info_id = _
                                          }
                                        )));
                                  e_id = 0; e_range = None;
                                  is_implicit_return = false;
                                  facts = <opaque> },
                                _,
                                (FN
                                   (Id (("split", _),
                                      { id_resolved = ref (None);
                                        id_resolved_alternatives = ref ([]);
                                        id_type =
                                        ref ((Some { t =
                                                     (TyFun (
                                                        [(OtherParam (
                                                            ("TODO", _), 
                                                            []))
                                                          ],
                                                        { t =
                                                          (OtherType (
                                                             ("TODO", _), 
                                                             []));
                                                          t_attrs = [] }
                                                        ));
                                                     t_attrs = [] }));
                                        id_svalue = ref (Unknown);
                                        id_flags = ref (0); id_info_id = _ }
                                      )))
                                ));
                             e_id = 0; e_range = None;
                             is_implicit_return = false; facts = <opaque> },
                           (_, [], _)));
                        e_id = 0; e_range = None; is_implicit_return = false;
                        facts = <opaque> }
                       ],
                     _)
                    ));
                 e_id = 0; e_range = None; is_implicit_return = false;
                 facts = <opaque> })),
      [(CasesAndBody
          ([(Case (_,
               (PatTuple
                  (_,
                   [(PatList
                       (_,
                        [(OtherPat (("PatInterpolatedString", _),
                            [(E
                                { e =
                                  (Call (
                                     { e =
                                       (Special
                                          ((ConcatString (FString "f")), _));
                                       e_id = 0; e_range = None;
                                       is_implicit_return = false;
                                       facts = <opaque> },
                                     (_,
                                      [(Arg
                                          { e =
                                            (L (String (_, ("go", _), _)));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> })
                                        ],
                                      _)
                                     ));
                                  e_id = 0; e_range = None;
                                  is_implicit_return = false;
                                  facts = <opaque> })
                              ]
                            ));
                          (PatId (("direction", _),
                             { id_resolved = ref ((Some (Global, _)));
                               id_resolved_alternatives = ref ([]);
                               id_type = ref (None);
                               id_svalue = ref (Unknown); id_flags = ref (0);
                               id_info_id = _ }
                             ))
                          ],
                        _))
                     ],
                   _))
               ))
             ],
           { s =
             (Block
                (_,
                 [{ s =
                    (ExprStmt (
                       { e =
                         (Assign (
                            { e =
                              (N
                                 (Id (("current_room", _),
                                    { id_resolved = ref ((Some (Global, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type = ref (None);
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (4); id_info_id = _ }
                                    )));
                              e_id = 0; e_range = None;
                              is_implicit_return = false; facts = <opaque> },
                            _,
                            { e =
                              (Call (
                                 { e =
                                   (DotAccess (
                                      { e =
                                        (N
                                           (Id (("current_room", _),
                                              { id_resolved = ref (None);
                                                id_resolved_alternatives =
                                                ref ([]);
                                                id_type = ref (None);
                                                id_svalue = ref (Unknown);
                                                id_flags = ref (0);
                                                id_info_id = _ }
                                              )));
                                        e_id = 0; e_range = None;
                                        is_implicit_return = false;
                                        facts = <opaque> },
                                      _,
                                      (FN
                                         (Id (("neighbor", _),
                                            { id_resolved = ref (None);
                                              id_resolved_alternatives =
                                              ref ([]);
                                              id_type =
                                              ref ((Some { t =
                                                           (TyFun (
                                                              [(OtherParam (
                                                                  ("TODO", _),
                                                                  []))
                                                                ],
                                                              { t =
                                                                (OtherType (
                                                                   ("TODO", _),
                                                                   []));
                                                                t_attrs = []
                                                                }
                                                              ));
                                                           t_attrs = [] }));
                                              id_svalue = ref (Unknown);
                                              id_flags = ref (0);
                                              id_info_id = _ }
                                            )))
                                      ));
                                   e_id = 0; e_range = None;
                                   is_implicit_return = false;
                                   facts = <opaque> },
                                 (_,
                                  [(Arg
                                      { e =
                                        (N
                                           (Id (("direction", _),
                                              { id_resolved =
                                                ref ((Some (Global, _)));
                                                id_resolved_alternatives =
                                                ref ([]);
                                                id_type = ref (None);
                                                id_svalue = ref (Unknown);
                                                id_flags = ref (0);
                                                id_info_id = _ }
                                              )));
                                        e_id = 0; e_range = None;
                                        is_implicit_return = false;
                                        facts = <opaque> })
                                    ],
                                  _)
                                 ));
                              e_id = 0; e_range = None;
                              is_implicit_return = false; facts = <opaque> }
                            ));
                         e_id = 0; e_range = None;
                         is_implicit_return = false; facts = <opaque> },
                       _));
                    s_range = None }
                   ],
                 _));
             s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatList
                        (_,
                         [(OtherPat (("PatInterpolatedString", _),
                             [(E
                                 { e =
                                   (Call (
                                      { e =
                                        (Special
                                           ((ConcatString (FString "f")), _));
                                        e_id = 0; e_range = None;
                                        is_implicit_return = false;
                                        facts = <opaque> },
                                      (_,
                                       [(Arg
                                           { e =
                                             (L (String (_, ("go", _), _)));
                                             e_id = 0; e_range = None;
                                             is_implicit_return = false;
                                             facts = <opaque> })
                                         ],
                                       _)
                                      ));
                                   e_id = 0; e_range = None;
                                   is_implicit_return = false;
                                   facts = <opaque> })
                               ]
                             ));
                           (PatWildcard _)],
                         _))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s =
                     (ExprStmt (
                        { e =
                          (Call (
                             { e =
                               (N
                                  (Id (("print", _),
                                     { id_resolved = ref (None);
                                       id_resolved_alternatives = ref ([]);
                                       id_type = ref (None);
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     )));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             (_,
                              [(Arg
                                  { e =
                                    (L
                                       (String
                                          (_,
                                           ("Sorry, you can't go that way", _),
                                           _)));
                                    e_id = 0; e_range = None;
                                    is_implicit_return = false;
                                    facts = <opaque> })
                                ],
                              _)
                             ));
                          e_id = 0; e_range = None;
                          is_implicit_return = false; facts = <opaque> },
                        _));
                     s_range = None }
                    ],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatList
                        (_,
                         [(OtherPat (("PatInterpolatedString", _),
                             [(E
                                 { e =
                                   (Call (
                                      { e =
                                        (Special
                                           ((ConcatString (FString "f")), _));
                                        e_id = 0; e_range = None;
                                        is_implicit_return = false;
                                        facts = <opaque> },
                                      (_,
                                       [(Arg
                                           { e =
                                             (L (String (_, ("go", _), _)));
                                             e_id = 0; e_range = None;
                                             is_implicit_return = false;
                                             facts = <opaque> })
                                         ],
                                       _)
                                      ));
                                   e_id = 0; e_range = None;
                                   is_implicit_return = false;
                                   facts = <opaque> })
                               ]
                             ));
                           (OtherPat (("PatSplat", _),
                              [(P
                                  (PatId (("rest", _),
                                     { id_resolved = ref ((Some (Global, _)));
                                       id_resolved_alternatives = ref ([]);
                                       id_type = ref (None);
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     )))
                                ]
                              ))
                           ],
                         _))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s =
                     (ExprStmt (
                        { e =
                          (Call (
                             { e =
                               (N
                                  (Id (("print", _),
                                     { id_resolved = ref (None);
                                       id_resolved_alternatives = ref ([]);
                                       id_type = ref (None);
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     )));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             (_,
                              [(Arg
                                  { e =
                                    (L
                                       (String
                                          (_,
                                           ("Sorry, you can't go that way", _),
                                           _)));
                                    e_id = 0; e_range = None;
                                    is_implicit_return = false;
                                    facts = <opaque> })
                                ],
                              _)
                             ));
                          e_id = 0; e_range = None;
                          is_implicit_return = false; facts = <opaque> },
                        _));
                     s_range = None }
                    ],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatConstructor (
                        (Id (("Click", _),
                           { id_resolved = ref (None);
                             id_resolved_alternatives = ref ([]);
                             id_type = ref (None); id_svalue = ref (Unknown);
                             id_flags = ref (0); id_info_id = _ }
                           )),
                        [(PatKeyVal (
                            (PatId (("position", _),
                               { id_resolved = ref ((Some (Global, _)));
                                 id_resolved_alternatives = ref ([]);
                                 id_type = ref (None);
                                 id_svalue = ref (Unknown);
                                 id_flags = ref (0); id_info_id = _ }
                               )),
                            (PatTuple
                               (_,
                                [(PatId (("x", _),
                                    { id_resolved = ref ((Some (Global, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type = ref (None);
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    ));
                                  (PatId (("y", _),
                                     { id_resolved = ref ((Some (Global, _)));
                                       id_resolved_alternatives = ref ([]);
                                       id_type = ref (None);
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     ))
                                  ],
                                _))
                            ))
                          ]
                        ))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s =
                     (ExprStmt (
                        { e =
                          (Call (
                             { e =
                               (N
                                  (Id (("handle_click_at", _),
                                     { id_resolved = ref (None);
                                       id_resolved_alternatives = ref ([]);
                                       id_type = ref (None);
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     )));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             (_,
                              [(Arg
                                  { e =
                                    (N
                                       (Id (("x", _),
                                          { id_resolved =
                                            ref ((Some (Global, _)));
                                            id_resolved_alternatives =
                                            ref ([]); id_type = ref (None);
                                            id_svalue = ref (Unknown);
                                            id_flags = ref (0);
                                            id_info_id = _ }
                                          )));
                                    e_id = 0; e_range = None;
                                    is_implicit_return = false;
                                    facts = <opaque> });
                                (Arg
                                   { e =
                                     (N
                                        (Id (("y", _),
                                           { id_resolved =
                                             ref ((Some (Global, _)));
                                             id_resolved_alternatives =
                                             ref ([]); id_type = ref (None);
                                             id_svalue = ref (Unknown);
                                             id_flags = ref (0);
                                             id_info_id = _ }
                                           )));
                                     e_id = 0; e_range = None;
                                     is_implicit_return = false;
                                     facts = <opaque> })
                                ],
                              _)
                             ));
                          e_id = 0; e_range = None;
                          is_implicit_return = false; facts = <opaque> },
                        _));
                     s_range = None }
                    ],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatDisj (
                        (PatConstructor (
                           (Id (("KeyPress", _),
                              { id_resolved = ref (None);
                                id_resolved_alternatives = ref ([]);
                                id_type = ref (None);
                                id_svalue = ref (Unknown);
                                id_flags = ref (0); id_info_id = _ }
                              )),
                           [(PatKeyVal (
                               (PatId (("key_name", _),
                                  { id_resolved = ref ((Some (Global, _)));
                                    id_resolved_alternatives = ref ([]);
                                    id_type = ref (None);
                                    id_svalue = ref (Unknown);
                                    id_flags = ref (0); id_info_id = _ }
                                  )),
                               (OtherPat (("PatInterpolatedString", _),
                                  [(E
                                      { e =
                                        (Call (
                                           { e =
                                             (Special
                                                ((ConcatString (FString "f")),
                                                 _));
                                             e_id = 0; e_range = None;
                                             is_implicit_return = false;
                                             facts = <opaque> },
                                           (_,
                                            [(Arg
                                                { e =
                                                  (L
                                                     (String (_, ("Q", _), _)));
                                                  e_id = 0; e_range = None;
                                                  is_implicit_return = false;
                                                  facts = <opaque> })
                                              ],
                                            _)
                                           ));
                                        e_id = 0; e_range = None;
                                        is_implicit_return = false;
                                        facts = <opaque> })
                                    ]
                                  ))
                               ))
                             ]
                           )),
                        (PatConstructor (
                           (Id (("Quit", _),
                              { id_resolved = ref (None);
                                id_resolved_alternatives = ref ([]);
                                id_type = ref (None);
                                id_svalue = ref (Unknown);
                                id_flags = ref (0); id_info_id = _ }
                              )),
                           []))
                        ))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s =
                     (ExprStmt (
                        { e =
                          (Call (
                             { e =
                               (DotAccess (
                                  { e =
                                    (N
                                       (Id (("game", _),
                                          { id_resolved = ref (None);
                                            id_resolved_alternatives =
                                            ref ([]); id_type = ref (None);
                                            id_svalue = ref (Unknown);
                                            id_flags = ref (0);
                                            id_info_id = _ }
                                          )));
                                    e_id = 0; e_range = None;
                                    is_implicit_return = false;
                                    facts = <opaque> },
                                  _,
                                  (FN
                                     (Id (("quit", _),
                                        { id_resolved = ref (None);
                                          id_resolved_alternatives = ref ([]);
                                          id_type =
                                          ref ((Some { t =
                                                       (TyFun (
                                                          [(OtherParam (
                                                              ("TODO", _), 
                                                              []))
                                                            ],
                                                          { t =
                                                            (OtherType (
                                                               ("TODO", _),
                                                               []));
                                                            t_attrs = [] }
                                                          ));
                                                       t_attrs = [] }));
                                          id_svalue = ref (Unknown);
                                          id_flags = ref (0); id_info_id = _
                                          }
                                        )))
                                  ));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             (_, [], _)));
                          e_id = 0; e_range = None;
                          is_implicit_return = false; facts = <opaque> },
                        _));
                     s_range = None }
                    ],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatConstructor (
                        (Id (("KeyPress", _),
                           { id_resolved = ref (None);
                             id_resolved_alternatives = ref ([]);
                             id_type = ref (None); id_svalue = ref (Unknown);
                             id_flags = ref (0); id_info_id = _ }
                           )),
                        [(PatKeyVal (
                            (PatId (("key_name", _),
                               { id_resolved = ref ((Some (Global, _)));
                                 id_resolved_alternatives = ref ([]);
                                 id_type = ref (None);
                                 id_svalue = ref (Unknown);
                                 id_flags = ref (0); id_info_id = _ }
                               )),
                            (OtherPat (("PatInterpolatedString", _),
                               [(E
                                   { e =
                                     (Call (
                                        { e =
                                          (Special
                                             ((ConcatString (FString "f")), _));
                                          e_id = 0; e_range = None;
                                          is_implicit_return = false;
                                          facts = <opaque> },
                                        (_,
                                         [(Arg
                                             { e =
                                               (L
                                                  (String
                                                     (_, ("up arrow", _), _)));
                                               e_id = 0; e_range = None;
                                               is_implicit_return = false;
                                               facts = <opaque> })
                                           ],
                                         _)
                                        ));
                                     e_id = 0; e_range = None;
                                     is_implicit_return = false;
                                     facts = <opaque> })
                                 ]
                               ))
                            ))
                          ]
                        ))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s =
                     (ExprStmt (
                        { e =
                          (Call (
                             { e =
                               (DotAccess (
                                  { e =
                                    (N
                                       (Id (("game", _),
                                          { id_resolved = ref (None);
                                            id_resolved_alternatives =
                                            ref ([]); id_type = ref (None);
                                            id_svalue = ref (Unknown);
                                            id_flags = ref (0);
                                            id_info_id = _ }
                                          )));
                                    e_id = 0; e_range = None;
                                    is_implicit_return = false;
                                    facts = <opaque> },
                                  _,
                                  (FN
                                     (Id (("go_north", _),
                                        { id_resolved = ref (None);
                                          id_resolved_alternatives = ref ([]);
                                          id_type =
                                          ref ((Some { t =
                                                       (TyFun (
                                                          [(OtherParam (
                                                              ("TODO", _), 
                                                              []))
                                                            ],
                                                          { t =
                                                            (OtherType (
                                                               ("TODO", _),
                                                               []));
                                                            t_attrs = [] }
                                                          ));
                                                       t_attrs = [] }));
                                          id_svalue = ref (Unknown);
                                          id_flags = ref (0); id_info_id = _
                                          }
                                        )))
                                  ));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             (_, [], _)));
                          e_id = 0; e_range = None;
                          is_implicit_return = false; facts = <opaque> },
                        _));
                     s_range = None }
                    ],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatConstructor (
                        (Id (("KeyPress", _),
                           { id_resolved = ref (None);
                             id_resolved_alternatives = ref ([]);
                             id_type = ref (None); id_svalue = ref (Unknown);
                             id_flags = ref (0); id_info_id = _ }
                           )),
                        []))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s = (OtherStmt (OS_Pass, [(Tk _)])); s_range = None }],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(OtherPat (("PatAttribute", _),
                        [(Name
                            (IdQualified
                               { name_last = (("pattern", _), None);
                                 name_middle =
                                 (Some (QDots
                                          [(("long", _), None);
                                            (("value", _), None)]));
                                 name_top = None;
                                 name_info =
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 }))
                          ]
                        ))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s = (OtherStmt (OS_Pass, [(Tk _)])); s_range = None }],
                  _));
              s_range = None }));
        (CasesAndBody
           ([(Case (_,
                (PatTuple
                   (_,
                    [(PatId (("other_event", _),
                        { id_resolved = ref ((Some (Global, _)));
                          id_resolved_alternatives = ref ([]);
                          id_type = ref (None); id_svalue = ref (Unknown);
                          id_flags = ref (0); id_info_id = _ }
                        ))
                      ],
                    _))
                ))
              ],
            { s =
              (Block
                 (_,
                  [{ s =
                     (Throw (_,
                        { e =
                          (Call (
                             { e =
                               (N
                                  (Id (("ValueError", _),
                                     { id_resolved = ref (None);
                                       id_resolved_alternatives = ref ([]);
                                       id_type = ref (None);
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     )));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             (_,
                              [(Arg
                                  { e =
                                    (Call (
                                       { e =
                                         (Special
                                            ((ConcatString (FString "f")), _));
                                         e_id = 0; e_range = None;
                                         is_implicit_return = false;
                                         facts = <opaque> },
                                       (_,
                                        [(Arg
                                            { e =
                                              (L
                                                 (String
                                                    (_,
                                                     ("Unrecognized event: ",
                                                      _),
                                                     _)));
                                              e_id = 0; e_range = None;
                                              is_implicit_return = false;
                                              facts = <opaque> });
                                          (Arg
                                             { e =
                                               (N
                                                  (Id (("other_event", _),
                                                     { id_resolved =
                                                       ref ((Some (Global, _)));
                                                       id_resolved_alternatives =
                                                       ref ([]);
                                                       id_type = ref (None);
                                                       id_svalue =
                                                       ref (Unknown);
                                                       id_flags = ref (0);
                                                       id_info_id = _ }
                                                     )));
                                               e_id = 0; e_range = None;
                                               is_implicit_return = false;
                                               facts = <opaque> })
                                          ],
                                        _)
                                       ));
                                    e_id = 0; e_range = None;
                                    is_implicit_return = false;
                                    facts = <opaque> })
                                ],
                              _)
                             ));
                          e_id = 0; e_range = None;
                          is_implicit_return = false; facts = <opaque> },
                        _));
                     s_range = None }
                    ],
                  _));
              s_range = None }))
        ]
      ));
   s_range = None }
  ]