[{ s =
   (DefStmt
      ({ name =
         (EN
            (Id (("user", _),
               { id_resolved = ref (None);
                 id_resolved_alternatives = ref ([]); id_type = ref (None);
                 id_svalue = ref (Unknown); id_flags = ref (0);
                 id_info_id = _ }
               )));
         attrs = []; tparams = None },
       (ClassDef
          { ckind = (Class, _); cextends = []; cimplements = [];
            cmixins = []; cparams = (_, [], _); cbody = (_, [], _) })));
   s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("document", _),
                { id_resolved = ref (None);
                  id_resolved_alternatives = ref ([]); id_type = ref (None);
                  id_svalue = ref (Unknown); id_flags = ref (0);
                  id_info_id = _ }
                )));
          attrs = []; tparams = None },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("owner", _),
                                { id_resolved = ref (None);
                                  id_resolved_alternatives = ref ([]);
                                  id_type = ref (None);
                                  id_svalue = ref (Unknown);
                                  id_flags = ref (0); id_info_id = _ }
                                )));
                          attrs = []; tparams = None },
                        (VarDef
                           { vinit =
                             (Some { e =
                                     (Container (Array,
                                        (_,
                                         [{ e =
                                            (N
                                               (Id (("user", _),
                                                  { 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> }
                                           ],
                                         _)
                                        ));
                                     e_id = 0; e_range = None;
                                     is_implicit_return = false;
                                     facts = <opaque> });
                             vtype = None; vtok = None })));
                    s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("viewer", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (VarDef
                            { vinit =
                              (Some { e =
                                      (Call (
                                         { e = (Special ((Op Or), _));
                                           e_id = 0; e_range = None;
                                           is_implicit_return = false;
                                           facts = <opaque> },
                                         (_,
                                          [(Arg
                                              { e =
                                                (Container (Array,
                                                   (_,
                                                    [{ e =
                                                       (N
                                                          (Id (("user", _),
                                                             { 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> }
                                                      ],
                                                    _)
                                                   ));
                                                e_id = 0; e_range = None;
                                                is_implicit_return = false;
                                                facts = <opaque> });
                                            (Arg
                                               { e =
                                                 (N
                                                    (Id (("owner", _),
                                                       { 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> })
                                            ],
                                          _)
                                         ));
                                      e_id = 0; e_range = None;
                                      is_implicit_return = false;
                                      facts = <opaque> });
                              vtype = None; vtok = None })));
                     s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("can_view", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (VarDef
                            { vinit =
                              (Some { e =
                                      (N
                                         (Id (("viewer", _),
                                            { 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> });
                              vtype = None; vtok = None })));
                     s_range = None })
                ],
              _)
             })));
    s_range = None }
  ]