type decl with 1 types (file "test_input.ml", line 36 (char 0-32))
  decl 1:
    type declaration x (file "test_input.ml", line 36 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 36 (char 0-32))
    type information:
      private type (file "test_input.ml", line 36 (char 9-32))
        type abbreviation (file "test_input.ml", line 36 (char 17-32))
          object type (open) with 1 methods (file "test_input.ml", line 36 (char 17-32))
            method 1:
              name x
              typ lid int (file "test_input.ml", line 36 (char 23-26))
let (str item) with 1 bindings (file "test_input.ml", line 37 (char 0-16))
  bind 1:
      plid "a" (file "test_input.ml", line 37 (char 4-5))
    to
      incomplete object coercion (file "test_input.ml", line 37 (char 6-16))
        int const 1 (file "test_input.ml", line 37 (char 15-16))
        typ lid int (file "test_input.ml", line 37 (char 9-12))
top level expr (file "test_input.ml", line 38 (char 0) - line 43 (char 3))
  immediate object with 4 items (file "test_input.ml", line 38 (char 0) - line 43 (char 3))
    self pattern:
      pattern : type (file "test_input.ml", line 38 (char 7-21))
        plid "self" (file "test_input.ml", line 38 (char 8-12))
        tick Self (file "test_input.ml", line 38 (char 15-20))
      item 1:
        inherit (file "test_input.ml", line 39 (char 2-11))
          class longident (monomorphic) with 1 ids (file "test_input.ml", line 39 (char 10-11))
            a
          no alias
      item 2:
        object val a (mutable) (file "test_input.ml", line 40 (char 2-20))
          int const 47 (file "test_input.ml", line 40 (char 18-20))
      item 3:
        object val b (nonmutable) (file "test_input.ml", line 41 (char 2-11))
          int const 4 (file "test_input.ml", line 41 (char 10-11))
      item 4:
        method m3 (file "test_input.ml", line 42 (char 2-18))
          no type annotation
          method body:
            fun (file "test_input.ml", line 42 (char 12-18))
                plid "x" (file "test_input.ml", line 42 (char 12-13))
              ->
                int const 48 (file "test_input.ml", line 42 (char 16-18))
class defs with 1 classes (file "test_input.ml", line 44 (char 0) - line 47 (char 3))
  class 1:
    class def z (file "test_input.ml", line 44 (char 6) - line 47 (char 3))
      class type params (0 params) (file "test_input.ml", line 44 (char 5-6))
      object def with 2 items (file "test_input.ml", line 44 (char 10) - line 47 (char 3))
        no self pattern
          item 1:
            val a12345678 nonmutable (special) (file "test_input.ml", line 45 (char 2-28))
              typ lid a (file "test_input.ml", line 45 (char 18-19))
              typ lid b (file "test_input.ml", line 45 (char 23-24))
              int const 1 (file "test_input.ml", line 45 (char 27-28))
          item 2:
            val b12345678 nonmutable (special) (file "test_input.ml", line 46 (char 2-24))
              typ lid c (file "test_input.ml", line 46 (char 19-20))
              int const 2 (file "test_input.ml", line 46 (char 23-24))
type decl with 1 types (file "test_input.ml", line 48 (char 0-31))
  decl 1:
    type declaration g (file "test_input.ml", line 48 (char 8-9))
    with 1 tp and 0 constraints (file "test_input.ml", line 48 (char 0-31))
    type parameters:
      type parameter 1: 
        = a
    type information:
      type abbreviation (file "test_input.ml", line 48 (char 12-31))
        alias type tick a  (file "test_input.ml", line 48 (char 12-31))
          type application (file "test_input.ml", line 48 (char 12-25))
            type application (file "test_input.ml", line 48 (char 12-25))
              #-type (file "test_input.ml", line 48 (char 22-25))
                a
              typ lid int (file "test_input.ml", line 48 (char 13-16))
            typ lid int (file "test_input.ml", line 48 (char 17-20))
type decl with 1 types (file "test_input.ml", line 49 (char 0-25))
  decl 1:
    type declaration f (file "test_input.ml", line 49 (char 8-9))
    with 1 tp and 0 constraints (file "test_input.ml", line 49 (char 0-25))
    type parameters:
      type parameter 1: 
        = a
    type information:
      type abbreviation (file "test_input.ml", line 49 (char 12-25))
        alias type tick a  (file "test_input.ml", line 49 (char 12-25))
          type application (file "test_input.ml", line 49 (char 12-19))
            #-type (file "test_input.ml", line 49 (char 16-19))
              a
            typ lid int (file "test_input.ml", line 49 (char 12-15))
type decl with 1 types (file "test_input.ml", line 50 (char 0-38))
  decl 1:
    type declaration e (file "test_input.ml", line 50 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 50 (char 0-38))
    type information:
      type abbreviation (file "test_input.ml", line 50 (char 9-38))
        object type (open) with 2 methods (file "test_input.ml", line 50 (char 9-38))
          method 1:
            name m1
            poly type tv list with 1 tv (file "test_input.ml", line 50 (char 16-22))
              type var 1: 
                tick a
              typ lid a (file "test_input.ml", line 50 (char 21-22))
          method 2:
            name m2
            typ lid int (file "test_input.ml", line 50 (char 29-32))
type decl with 1 types (file "test_input.ml", line 51 (char 0-15))
  decl 1:
    type declaration d (file "test_input.ml", line 51 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 51 (char 0-15))
    type information:
      type abbreviation (file "test_input.ml", line 51 (char 9-15))
        object type (open) with 0 methods (file "test_input.ml", line 51 (char 9-15))
type decl with 1 types (file "test_input.ml", line 52 (char 0-12))
  decl 1:
    type declaration c (file "test_input.ml", line 52 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 52 (char 0-12))
    type information:
      type abbreviation (file "test_input.ml", line 52 (char 9-12))
        object type (closed) with 0 methods (file "test_input.ml", line 52 (char 9-12))
type decl with 1 types (file "test_input.ml", line 53 (char 0-34))
  decl 1:
    type declaration b (file "test_input.ml", line 53 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 53 (char 0-34))
    type information:
      type abbreviation (file "test_input.ml", line 53 (char 9-34))
        object type (closed) with 2 methods (file "test_input.ml", line 53 (char 9-34))
          method 1:
            name m1
            poly type tv list with 1 tv (file "test_input.ml", line 53 (char 16-22))
              type var 1: 
                tick a
              typ lid a (file "test_input.ml", line 53 (char 21-22))
          method 2:
            name m2
            typ lid int (file "test_input.ml", line 53 (char 29-32))
type decl with 1 types (file "test_input.ml", line 54 (char 0-11))
  decl 1:
    type declaration a (file "test_input.ml", line 54 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 54 (char 0-11))
    type information:
      type abbreviation (file "test_input.ml", line 54 (char 9-11))
        #-type (file "test_input.ml", line 54 (char 9-11))
          b
top level expr (file "test_input.ml", line 55 (char 0-25))
  object duplication with 3 updates (file "test_input.ml", line 55 (char 0-25))
    update 1:
      id a
      int const 1 (file "test_input.ml", line 55 (char 7-8))
    update 2:
      id b
      int const 2 (file "test_input.ml", line 55 (char 14-15))
    update 3:
      id c
      int const 3 (file "test_input.ml", line 55 (char 21-22))
top level expr (file "test_input.ml", line 56 (char 0-6))
  mutable assign (file "test_input.ml", line 56 (char 0-6))
    lid "a" (file "test_input.ml", line 56 (char 0-1))
    int const 5 (file "test_input.ml", line 56 (char 5-6))
top level expr (file "test_input.ml", line 57 (char 0-8))
  incomplete object coercion (file "test_input.ml", line 57 (char 0-8))
    lid "x" (file "test_input.ml", line 57 (char 1-2))
    typ lid v (file "test_input.ml", line 57 (char 6-7))
top level expr (file "test_input.ml", line 58 (char 0-12))
  complete object coercion (file "test_input.ml", line 58 (char 0-12))
    lid "x" (file "test_input.ml", line 58 (char 1-2))
    typ lid a (file "test_input.ml", line 58 (char 5-6))
    typ lid b (file "test_input.ml", line 58 (char 10-11))
top level expr (file "test_input.ml", line 59 (char 0-3))
  method call f (file "test_input.ml", line 59 (char 0-3))
    lid "x" (file "test_input.ml", line 59 (char 0-1))
top level expr (file "test_input.ml", line 60 (char 0-9))
  new with 3 ids (file "test_input.ml", line 60 (char 0-9))
    A.B.a
module type A (file "test_input.ml", line 61 (char 0) - line 64 (char 3))
  signature with 1 fields (file "test_input.ml", line 61 (char 16) - line 64 (char 3))
    item 1: 
      class spec with 2 classes (file "test_input.ml", line 62 (char 2) - line 63 (char 41))
        class spec 1:
          virtual class spec a (file "test_input.ml", line 62 (char 8-47))
            class type params (0 params) (file "test_input.ml", line 62 (char 15-16))
            class function (file "test_input.ml", line 62 (char 20-47))
              typ lid t (file "test_input.ml", line 62 (char 20-21))
              class function (file "test_input.ml", line 62 (char 25-47))
                tuple type with 2 elements (file "test_input.ml", line 62 (char 25-34))
                  El 1: 
                    typ lid int (file "test_input.ml", line 62 (char 25-28))
                  El 2: 
                    typ lid int (file "test_input.ml", line 62 (char 31-34))
                polymorphic class type longident (file "test_input.ml", line 62 (char 38-47))
                  2 type args:
                    Arg 1:
                      typ lid a (file "test_input.ml", line 62 (char 39-40))
                    Arg 2:
                      typ lid b (file "test_input.ml", line 62 (char 41-42))
                  2 ids:
                    A.b
        class spec 2:
          class spec b (file "test_input.ml", line 63 (char 6-41))
            class type params (2 params) (file "test_input.ml", line 63 (char 6-14))
              param 1: 
                = a
              param 2: 
                = b
            object type with 1 items (file "test_input.ml", line 63 (char 19-41))
              no self type
              item 1:
                object sig val a (nonmutable) (file "test_input.ml", line 63 (char 26-37))
                  typ lid int (file "test_input.ml", line 63 (char 34-37))
module type T (file "test_input.ml", line 65 (char 0) - line 68 (char 3))
  signature with 1 fields (file "test_input.ml", line 65 (char 16) - line 68 (char 3))
    item 1: 
      class type spec with 2 class types (file "test_input.ml", line 66 (char 2) - line 67 (char 31))
        class type 1:
          virtual class type spec a (file "test_input.ml", line 66 (char 13-28))
            class type params (0 params) (file "test_input.ml", line 66 (char 20-21))
            monomorphic class type longident (file "test_input.ml", line 66 (char 25-28))
              2 ids:
                A.a
        class type 2:
          class type spec b (file "test_input.ml", line 67 (char 5-31))
            class type params (0 params) (file "test_input.ml", line 67 (char 4-5))
            object type with 1 items (file "test_input.ml", line 67 (char 9-31))
              no self type
              item 1:
                object sig val a (nonmutable) (file "test_input.ml", line 67 (char 16-27))
                  typ lid int (file "test_input.ml", line 67 (char 24-27))
class type def with 4 class types (file "test_input.ml", line 69 (char 0) - line 81 (char 18))
  class type 1:
    virtual class type def a (file "test_input.ml", line 69 (char 11-47))
      class type params (2 params) (file "test_input.ml", line 69 (char 19-27))
        param 1: 
          = a
        param 2: 
          = b
      polymorphic class type longident (file "test_input.ml", line 69 (char 32-47))
        1 type args:
          Arg 1:
            tuple type with 2 elements (file "test_input.ml", line 69 (char 33-40))
              El 1: 
                tick a (file "test_input.ml", line 69 (char 33-35))
              El 2: 
                tick b (file "test_input.ml", line 69 (char 38-40))
        3 ids:
          A.B.c
  class type 2:
    class type def b (file "test_input.ml", line 70 (char 4-13))
      class type params (0 params) (file "test_input.ml", line 70 (char 3-4))
      monomorphic class type longident (file "test_input.ml", line 70 (char 8-13))
        3 ids:
          C.D.e
  class type 3:
    class type def c (file "test_input.ml", line 71 (char 4) - line 80 (char 3))
      class type params (0 params) (file "test_input.ml", line 71 (char 3-4))
      object type with 8 items (file "test_input.ml", line 71 (char 8) - line 80 (char 3))
        self type:
          tick Self (file "test_input.ml", line 71 (char 16-21))
        item 1:
          inherit (class sig) (file "test_input.ml", line 72 (char 2-11))
            monomorphic class type longident (file "test_input.ml", line 72 (char 10-11))
              1 ids:
                a
        item 2:
          object sig val a (mutable) (file "test_input.ml", line 73 (char 2-23))
            typ lid float (file "test_input.ml", line 73 (char 18-23))
        item 3:
          object sig val b (nonmutable) (file "test_input.ml", line 74 (char 2-13))
            typ lid int (file "test_input.ml", line 74 (char 10-13))
        item 4:
          virtual method spec a (public) (file "test_input.ml", line 75 (char 2-24))
            typ lid int (file "test_input.ml", line 75 (char 21-24))
        item 5:
          virtual method spec b (private) (file "test_input.ml", line 76 (char 2-32))
            typ lid int (file "test_input.ml", line 76 (char 29-32))
        item 6:
          public method spec m1 (private) (file "test_input.ml", line 77 (char 2-35))
            poly type tv list with 1 tv (file "test_input.ml", line 77 (char 22-35))
              type var 1: 
                tick a
              function type (file "test_input.ml", line 77 (char 27-35))
                tick a (file "test_input.ml", line 77 (char 27-29))
                tick a (file "test_input.ml", line 77 (char 33-35))
        item 7:
          public method spec m3 (public) (file "test_input.ml", line 78 (char 2-21))
            poly type tv list with 1 tv (file "test_input.ml", line 78 (char 14-21))
              type var 1: 
                tick a
              tick a (file "test_input.ml", line 78 (char 19-21))
        item 8:
          object constraint spec (file "test_input.ml", line 79 (char 2-18))
            typ lid a (file "test_input.ml", line 79 (char 13-14))
            typ lid b (file "test_input.ml", line 79 (char 17-18))
  class type 4:
    class type def d (file "test_input.ml", line 81 (char 4-18))
      class type params (0 params) (file "test_input.ml", line 81 (char 3-4))
      object type with 0 items (file "test_input.ml", line 81 (char 8-18))
        no self type
class defs with 1 classes (file "test_input.ml", line 82 (char 0) - line 89 (char 3))
  class 1:
    class def f (file "test_input.ml", line 82 (char 6) - line 89 (char 3))
      class type params (0 params) (file "test_input.ml", line 82 (char 5-6))
      object def with 6 items (file "test_input.ml", line 82 (char 10) - line 89 (char 3))
        no self pattern
          item 1:
            inherit (file "test_input.ml", line 83 (char 2-20))
              class application (file "test_input.ml", line 83 (char 10-15))
                class longident (monomorphic) with 2 ids (file "test_input.ml", line 83 (char 10-13))
                  A.c
                int const 4 (file "test_input.ml", line 83 (char 14-15))
              alias a
          item 2:
            inherit (file "test_input.ml", line 84 (char 2-11))
              class longident (monomorphic) with 1 ids (file "test_input.ml", line 84 (char 10-11))
                b
              no alias
          item 3:
            inherit a455667 (special) (file "test_input.ml", line 85 (char 2-22))
              alias b
          item 4:
            object val a (mutable) (file "test_input.ml", line 86 (char 2-19))
              int const 5 (file "test_input.ml", line 86 (char 18-19))
          item 5:
            object val b (nonmutable) (file "test_input.ml", line 87 (char 2-17))
              typed ex (file "test_input.ml", line 87 (char 8-17))
                int const 6 (file "test_input.ml", line 87 (char 16-17))
                typ lid int (file "test_input.ml", line 87 (char 10-13))
          item 6:
            val a878787 nonmutable (special) (file "test_input.ml", line 88 (char 2-22))
              tick a (file "test_input.ml", line 88 (char 16-18))
              int const 7 (file "test_input.ml", line 88 (char 21-22))
class defs with 1 classes (file "test_input.ml", line 90 (char 0-48))
  class 1:
    class def e (file "test_input.ml", line 90 (char 6-48))
      class type params (0 params) (file "test_input.ml", line 90 (char 5-6))
      let rec in (class_expr) with 2 bindings (file "test_input.ml", line 90 (char 10-48))
          bind 1:
              plid "z" (file "test_input.ml", line 90 (char 18-19))
            to
              int const 5 (file "test_input.ml", line 90 (char 22-23))
          bind 2:
              plid "y" (file "test_input.ml", line 90 (char 28-29))
            to
              int const 6 (file "test_input.ml", line 90 (char 32-33))
        in
          class application (file "test_input.ml", line 90 (char 37-48))
            class longident (monomorphic) with 3 ids (file "test_input.ml", line 90 (char 37-42))
              A.B.f
            two tuple (file "test_input.ml", line 90 (char 44-47))
              int const 6 (file "test_input.ml", line 90 (char 44-45))
              int const 7 (file "test_input.ml", line 90 (char 46-47))
class defs with 1 classes (file "test_input.ml", line 91 (char 0-55))
  class 1:
    class def g (file "test_input.ml", line 91 (char 6-55))
      class type params (0 params) (file "test_input.ml", line 91 (char 5-6))
      let in (class_expr) with 2 bindings (file "test_input.ml", line 91 (char 10-55))
          bind 1:
              plid "z" (file "test_input.ml", line 91 (char 14-15))
            to
              int const 0 (file "test_input.ml", line 91 (char 18-19))
          bind 2:
              plid "y" (file "test_input.ml", line 91 (char 24-25))
            to
              int const 6 (file "test_input.ml", line 91 (char 28-29))
        in
          typed class expr (file "test_input.ml", line 91 (char 33-55))
            class longident (polymorphic) (file "test_input.ml", line 91 (char 34-46))
              2 type args:
                Arg 1: 
                  tuple type with 2 elements (file "test_input.ml", line 91 (char 35-40))
                    El 1: 
                      typ lid t (file "test_input.ml", line 91 (char 35-36))
                    El 2: 
                      typ lid q (file "test_input.ml", line 91 (char 39-40))
                Arg 2: 
                  typ lid r (file "test_input.ml", line 91 (char 42-43))
              1 ids:
                h
            monomorphic class type longident (file "test_input.ml", line 91 (char 49-54))
              3 ids:
                A.B.i
class defs with 1 classes (file "test_input.ml", line 92 (char 0-37))
  class 1:
    class def a (file "test_input.ml", line 92 (char 6-37))
      class type params (0 params) (file "test_input.ml", line 92 (char 5-6))
      object fun a013489 b (special) (file "test_input.ml", line 92 (char 14-37))
        object def with 0 items (file "test_input.ml", line 92 (char 27-37))
          no self pattern
class def a94827 (special) (file "test_input.ml", line 93 (char 0-29))
  plid "a" (file "test_input.ml", line 93 (char 13-14))
  plid "b" (file "test_input.ml", line 93 (char 15-16))
  object def with 0 items (file "test_input.ml", line 93 (char 19-29))
    no self pattern
class defs with 3 classes (file "test_input.ml", line 94 (char 0) - line 106 (char 3))
  class 1:
    virtual class def c (file "test_input.ml", line 94 (char 6) - line 95 (char 3))
      class type params (0 params) (file "test_input.ml", line 94 (char 13-14))
      object fun (file "test_input.ml", line 94 (char 16) - line 95 (char 3))
        tuple pattern - 2 els (file "test_input.ml", line 94 (char 17-21))
          El 1: 
            plid "c" (file "test_input.ml", line 94 (char 17-18))
          El 2: 
            plid "d" (file "test_input.ml", line 94 (char 20-21))
        object fun (file "test_input.ml", line 94 (char 23) - line 95 (char 3))
          plid "e" (file "test_input.ml", line 94 (char 23-24))
          object def with 0 items (file "test_input.ml", line 94 (char 27) - line 95 (char 3))
            self pattern:
              plid "self" (file "test_input.ml", line 94 (char 35-39))
  class 2:
    class def d (file "test_input.ml", line 96 (char 4-38))
      class type params (0 params) (file "test_input.ml", line 96 (char 3-4))
      object fun (file "test_input.ml", line 96 (char 12-38))
        plid "k" (file "test_input.ml", line 96 (char 12-13))
        object fun (file "test_input.ml", line 96 (char 14-38))
          plid "l" (file "test_input.ml", line 96 (char 14-15))
          object fun (file "test_input.ml", line 96 (char 23-38))
            plid "m" (file "test_input.ml", line 96 (char 23-24))
            object def with 0 items (file "test_input.ml", line 96 (char 28-38))
              no self pattern
  class 3:
    class def a (file "test_input.ml", line 97 (char 4) - line 106 (char 3))
      class type params (2 params) (file "test_input.ml", line 97 (char 4-14))
        param 1: 
          - a
        param 2: 
          + b
      object def with 8 items (file "test_input.ml", line 97 (char 19) - line 106 (char 3))
        self pattern:
          pattern : type (file "test_input.ml", line 97 (char 26-39))
            plid "self" (file "test_input.ml", line 97 (char 27-31))
            typ uid Self (file "test_input.ml", line 97 (char 34-38))
          item 1:
            class constraint (file "test_input.ml", line 98 (char 2-18))
                typ lid a (file "test_input.ml", line 98 (char 13-14))
              =
                typ lid b (file "test_input.ml", line 98 (char 17-18))
          item 2:
            initializer (file "test_input.ml", line 99 (char 2-16))
              int const 57 (file "test_input.ml", line 99 (char 14-16))
          item 3:
            virtual method a (file "test_input.ml", line 100 (char 2-24))
              typ lid int (file "test_input.ml", line 100 (char 21-24))
          item 4:
            virtual private method b (file "test_input.ml", line 101 (char 2-32))
              typ lid int (file "test_input.ml", line 101 (char 29-32))
          item 5:
            private method m1 (file "test_input.ml", line 102 (char 2-48))
              type annotation:
                poly type tv list with 1 tv (file "test_input.ml", line 102 (char 22-35))
                  type var 1: 
                    tick a
                  function type (file "test_input.ml", line 102 (char 27-35))
                    tick a (file "test_input.ml", line 102 (char 27-29))
                    tick a (file "test_input.ml", line 102 (char 33-35))
              method body:
                fun (file "test_input.ml", line 102 (char 38-48))
                    plid "a" (file "test_input.ml", line 102 (char 42-43))
                  ->
                    lid "a" (file "test_input.ml", line 102 (char 47-48))
          item 6:
            private method m2 (file "test_input.ml", line 103 (char 2-35))
              no type annotation
              method body:
                fun (file "test_input.ml", line 103 (char 20-35))
                    plid "a" (file "test_input.ml", line 103 (char 20-21))
                  ->
                    fun (file "test_input.ml", line 103 (char 22-35))
                        plid "b" (file "test_input.ml", line 103 (char 22-23))
                      ->
                        typed ex (file "test_input.ml", line 103 (char 24-35))
                          two tuple (file "test_input.ml", line 103 (char 31-34))
                            lid "a" (file "test_input.ml", line 103 (char 31-32))
                            lid "b" (file "test_input.ml", line 103 (char 33-34))
                          typ lid t (file "test_input.ml", line 103 (char 26-27))
          item 7:
            method m3 (file "test_input.ml", line 104 (char 2-25))
              type annotation:
                poly type tv list with 1 tv (file "test_input.ml", line 104 (char 14-21))
                  type var 1: 
                    tick a
                  tick a (file "test_input.ml", line 104 (char 19-21))
              method body:
                lid "a" (file "test_input.ml", line 104 (char 24-25))
          item 8:
            method m4 (file "test_input.ml", line 105 (char 2-25))
              no type annotation
              method body:
                fun (file "test_input.ml", line 105 (char 12-25))
                    tuple pattern - 2 els (file "test_input.ml", line 105 (char 13-16))
                      El 1: 
                        plid "a" (file "test_input.ml", line 105 (char 13-14))
                      El 2: 
                        plid "b" (file "test_input.ml", line 105 (char 15-16))
                  ->
                    typed ex (file "test_input.ml", line 105 (char 18-25))
                      lid "a" (file "test_input.ml", line 105 (char 24-25))
                      typ lid t (file "test_input.ml", line 105 (char 20-21))
let mod (str item) Z (file "test_input.ml", line 107 (char 0-59))
    struct with 0 items (file "test_input.ml", line 107 (char 15-25))
  in
    let mod (expr) Y (file "test_input.ml", line 107 (char 29-59))
        struct with 0 items (file "test_input.ml", line 107 (char 44-54))
      in
        int const 5 (file "test_input.ml", line 107 (char 58-59))
module rec with 2 modules (file "test_input.ml", line 108 (char 0) - line 109 (char 54))
  mod rec 1: 
    name R1
    sig:
      mod type UID RT1 (file "test_input.ml", line 108 (char 16-19))
    module:
      struct with 1 items (file "test_input.ml", line 108 (char 22-54))
        item 1:
          type decl with 1 types (file "test_input.ml", line 108 (char 29-50))
            decl 1:
              type declaration r1 (file "test_input.ml", line 108 (char 34-36))
              with 0 tp and 0 constraints (file "test_input.ml", line 108 (char 29-50))
              type information:
                variant type with 1 variants (file "test_input.ml", line 108 (char 39-50))
                  variant 1:
                    R1 with 1 args (file "test_input.ml", line 108 (char 39-50))
                      Arg 1: 
                        type module access (file "test_input.ml", line 108 (char 45-50))
                          typ uid R2 (file "test_input.ml", line 108 (char 45-47))
                          typ lid r2 (file "test_input.ml", line 108 (char 48-50))
  mod rec 2: 
    name R2
    sig:
      mod type UID RT2 (file "test_input.ml", line 109 (char 16-19))
    module:
      struct with 1 items (file "test_input.ml", line 109 (char 22-54))
        item 1:
          type decl with 1 types (file "test_input.ml", line 109 (char 29-50))
            decl 1:
              type declaration r2 (file "test_input.ml", line 109 (char 34-36))
              with 0 tp and 0 constraints (file "test_input.ml", line 109 (char 29-50))
              type information:
                variant type with 1 variants (file "test_input.ml", line 109 (char 39-50))
                  variant 1:
                    R2 with 1 args (file "test_input.ml", line 109 (char 39-50))
                      Arg 1: 
                        type module access (file "test_input.ml", line 109 (char 45-50))
                          typ uid R1 (file "test_input.ml", line 109 (char 45-47))
                          typ lid r1 (file "test_input.ml", line 109 (char 48-50))
module type B (file "test_input.ml", line 110 (char 0-56))
  signature with 1 fields (file "test_input.ml", line 110 (char 16-56))
    item 1: 
      module rec decl with 2 modules (file "test_input.ml", line 110 (char 20-52))
        mod rec 1: 
          name R1
          mod type UID RT1 (file "test_input.ml", line 110 (char 36-39))
        mod rec 2: 
          name R2
          mod type UID RT2 (file "test_input.ml", line 110 (char 49-52))
include (file "test_input.ml", line 111 (char 0-9))
  mexpr uid A (file "test_input.ml", line 111 (char 8-9))
module type A (file "test_input.ml", line 112 (char 0-60))
  module type with 2 with constraints (file "test_input.ml", line 112 (char 16-60))
    signature with 0 fields (file "test_input.ml", line 112 (char 16-23))
    constraint 1: 
      type with constraint (file "test_input.ml", line 112 (char 29-41))
      no type parameters
        t
      =
        typ lid int (file "test_input.ml", line 112 (char 38-41))
    constraint 2: 
      module with constraint (file "test_input.ml", line 112 (char 46-60))
        A
      =
        mod access (file "test_input.ml", line 112 (char 57-60))
          mexpr uid B (file "test_input.ml", line 112 (char 57-58))
          mexpr uid C (file "test_input.ml", line 112 (char 59-60))
module type S2 (file "test_input.ml", line 113 (char 0) - line 127 (char 3))
  signature with 13 fields (file "test_input.ml", line 113 (char 17) - line 127 (char 3))
    item 1: 
      exception decl A with 2 args (file "test_input.ml", line 114 (char 2-26))
        Arg 1: 
          typ lid int (file "test_input.ml", line 114 (char 17-20))
        Arg 2: 
          typ lid int (file "test_input.ml", line 114 (char 23-26))
    item 2: 
      external decl *** : int -> int = "a" "b" (file "test_input.ml", line 115 (char 2-41))
    item 3: 
      external decl a with 2 strings (file "test_input.ml", line 116 (char 2-35))
        function type (file "test_input.ml", line 116 (char 15-25))
          typ lid int (file "test_input.ml", line 116 (char 15-18))
          typ lid int (file "test_input.ml", line 116 (char 22-25))
        string 1: 
          a
        string 2: 
          b
    item 4: 
      include sig (file "test_input.ml", line 117 (char 2-11))
        mod type UID A (file "test_input.ml", line 117 (char 10-11))
    item 5: 
      module type decl B (abstract) (file "test_input.ml", line 118 (char 2-15))
    item 6: 
      module type decl C (file "test_input.ml", line 119 (char 2-24))
        mod type access (file "test_input.ml", line 119 (char 18-24))
          mod type appl (file "test_input.ml", line 119 (char 18-22))
            mod type UID G (file "test_input.ml", line 119 (char 18-19))
            mod type UID A (file "test_input.ml", line 119 (char 20-21))
          mod type UID H (file "test_input.ml", line 119 (char 23-24))
    item 7: 
      sig open C . D (file "test_input.ml", line 120 (char 2-10))
    item 8: 
      sig open (file "test_input.ml", line 121 (char 2-12))
        C.D.E
    item 9: 
      sig type decl with 1 types (file "test_input.ml", line 122 (char 2-41))
        type 1: 
          type declaration a (file "test_input.ml", line 122 (char 7-8))
          with 0 tp and 0 constraints (file "test_input.ml", line 122 (char 2-41))
          type information:
            private manifest type (file "test_input.ml", line 122 (char 11-41))
              name:
                typ lid f (file "test_input.ml", line 122 (char 11-12))
              type info: (file "test_input.ml", line 122 (char 11-41))
                variant type with 2 variants (file "test_input.ml", line 122 (char 23-41))
                  variant 1:
                    A with 3 args (file "test_input.ml", line 122 (char 23-37))
                      Arg 1: 
                        typ lid a (file "test_input.ml", line 122 (char 28-29))
                      Arg 2: 
                        typ lid b (file "test_input.ml", line 122 (char 32-33))
                      Arg 3: 
                        typ lid c (file "test_input.ml", line 122 (char 36-37))
                  variant 2:
                    B with 0 args (file "test_input.ml", line 122 (char 40-41))
    item 10: 
      sig type decl with 2 types (file "test_input.ml", line 123 (char 2-76))
        type 1: 
          type declaration b (file "test_input.ml", line 123 (char 11-12))
          with 1 tp and 1 constraints (file "test_input.ml", line 123 (char 2-32))
            abstract_type (file "test_input.ml", line 123 (char 7-32))
            rhs tv b
            type parameters:
              type parameter 1: 
                + a
            constraints:
              constraint 1:
                  tick a (file "test_input.ml", line 123 (char 24-26))
                =
                  typ lid int (file "test_input.ml", line 123 (char 29-32))
        type 2: 
          type declaration e (file "test_input.ml", line 123 (char 47-48))
          with 2 tp and 0 constraints (file "test_input.ml", line 123 (char 32-76))
          type parameters:
            type parameter 1: 
              = c
            type parameter 2: 
              - d
          type information:
            private type (file "test_input.ml", line 123 (char 51-76))
              record with 2 labels (file "test_input.ml", line 123 (char 59-76))
                field 1: 
                  a (file "test_input.ml", line 123 (char 60-67))
                  typ lid int (file "test_input.ml", line 123 (char 64-67))
                field 2: 
                  b (file "test_input.ml", line 123 (char 69-75))
                  tick c (file "test_input.ml", line 123 (char 73-75))
    item 11: 
      val decl x :  (file "test_input.ml", line 124 (char 2-30))
        function type (file "test_input.ml", line 124 (char 10-30))
          typ lid unit (file "test_input.ml", line 124 (char 10-14))
          function type (file "test_input.ml", line 124 (char 18-30))
            typ lid unit (file "test_input.ml", line 124 (char 18-22))
            typ lid unit (file "test_input.ml", line 124 (char 26-30))
    item 12: 
      val decl infix +++ (special) (file "test_input.ml", line 125 (char 2-31))
        function type (file "test_input.ml", line 125 (char 14-31))
          typ lid int (file "test_input.ml", line 125 (char 14-17))
          function type (file "test_input.ml", line 125 (char 21-31))
            typ lid int (file "test_input.ml", line 125 (char 21-24))
            typ lid int (file "test_input.ml", line 125 (char 28-31))
    item 13: 
      module decl M5 (file "test_input.ml", line 126 (char 2-41))
        signature with 1 fields (file "test_input.ml", line 126 (char 14-41))
          item 1: 
            module A(B : C) : D (file "test_input.ml", line 126 (char 18-37))
module type S3 (file "test_input.ml", line 128 (char 0-74))
  functor mod type (file "test_input.ml", line 128 (char 17-74))
    Argument X:
      mod type UID S4 (file "test_input.ml", line 128 (char 29-31))
    Result:
      signature with 1 fields (file "test_input.ml", line 128 (char 36-74))
        item 1: 
          val decl ++ :  (file "test_input.ml", line 128 (char 40-70))
            function type (file "test_input.ml", line 128 (char 51-70))
              typ lid int (file "test_input.ml", line 128 (char 51-54))
              function type (file "test_input.ml", line 128 (char 58-70))
                typ lid int (file "test_input.ml", line 128 (char 58-61))
                typ lid float (file "test_input.ml", line 128 (char 65-70))
module M4 (file "test_input.ml", line 129 (char 0-19))
  module constraint (file "test_input.ml", line 129 (char 12-19))
      mexpr uid A (file "test_input.ml", line 129 (char 13-14))
      mod type UID S (file "test_input.ml", line 129 (char 17-18))
module M1 (file "test_input.ml", line 130 (char 0-17))
  mod access (file "test_input.ml", line 130 (char 12-17))
    mod access (file "test_input.ml", line 130 (char 12-15))
      mexpr uid A (file "test_input.ml", line 130 (char 12-13))
      mexpr uid B (file "test_input.ml", line 130 (char 14-15))
    mexpr uid C (file "test_input.ml", line 130 (char 16-17))
module M2 (file "test_input.ml", line 131 (char 0-27))
  mod appl (file "test_input.ml", line 131 (char 12-27))
    mexpr uid F (file "test_input.ml", line 131 (char 12-13))
    mod appl (file "test_input.ml", line 131 (char 15-26))
      mod appl (file "test_input.ml", line 131 (char 15-24))
        mod access (file "test_input.ml", line 131 (char 15-18))
          mexpr uid A (file "test_input.ml", line 131 (char 15-16))
          mexpr uid G (file "test_input.ml", line 131 (char 17-18))
        mod access (file "test_input.ml", line 131 (char 19-24))
          mod access (file "test_input.ml", line 131 (char 19-22))
            mexpr uid B (file "test_input.ml", line 131 (char 19-20))
            mexpr uid C (file "test_input.ml", line 131 (char 21-22))
          mexpr uid K (file "test_input.ml", line 131 (char 23-24))
      mexpr uid H (file "test_input.ml", line 131 (char 25-26))
module M3 (file "test_input.ml", line 132 (char 0) - line 137 (char 3))
  struct with 4 items (file "test_input.ml", line 132 (char 12) - line 137 (char 3))
    item 1:
      type decl with 1 types (file "test_input.ml", line 133 (char 2-8))
        decl 1:
          type declaration t (file "test_input.ml", line 133 (char 7-8))
          with 0 tp and 0 constraints (file "test_input.ml", line 133 (char 2-8))
            abstract_type (file "test_input.ml", line 133 (char 7-8))
            rhs tv a
    item 2:
      let (str item) with 1 bindings (file "test_input.ml", line 134 (char 2-15))
        bind 1:
            plid "f" (file "test_input.ml", line 134 (char 6-7))
          to
            fun (file "test_input.ml", line 134 (char 6-7))
                plid "a" (file "test_input.ml", line 134 (char 8-9))
              ->
                fun (file "test_input.ml", line 134 (char 6-7))
                    plid "b" (file "test_input.ml", line 134 (char 10-11))
                  ->
                    int const 2 (file "test_input.ml", line 134 (char 14-15))
    item 3:
      top level expr (file "test_input.ml", line 135 (char 2-3))
        int const 3 (file "test_input.ml", line 135 (char 2-3))
    item 4:
      module M4 (file "test_input.ml", line 136 (char 2-39))
        mod appl (file "test_input.ml", line 136 (char 14-39))
          mexpr uid F (file "test_input.ml", line 136 (char 14-15))
          struct with 1 items (file "test_input.ml", line 136 (char 17-38))
            item 1:
              let (str item) with 1 bindings (file "test_input.ml", line 136 (char 24-34))
                bind 1:
                    plid "a" (file "test_input.ml", line 136 (char 28-29))
                  to
                    int const 27 (file "test_input.ml", line 136 (char 32-34))
top level expr (file "test_input.ml", line 138 (char 0) - line 161 (char 18))
  function with 4 patterns (file "test_input.ml", line 138 (char 0) - line 161 (char 18))
    case 1:
        or pattern (file "test_input.ml", line 139 (char 4) - line 143 (char 16))
          or pattern (file "test_input.ml", line 139 (char 4) - line 143 (char 8))
            or pattern (file "test_input.ml", line 139 (char 4) - line 142 (char 11))
              or pattern (file "test_input.ml", line 139 (char 4) - line 141 (char 23))
                or pattern (file "test_input.ml", line 139 (char 4) - line 141 (char 9))
                  or pattern (file "test_input.ml", line 139 (char 4) - line 140 (char 29))
                    infix ++++ (file "test_input.ml", line 139 (char 4-10))
                    record pattern - 2 els (file "test_input.ml", line 140 (char 4-29))
                      El 1: 
                          plid "a" (file "test_input.ml", line 140 (char 6-7))
                        =
                          unit pattern (file "test_input.ml", line 140 (char 10-12))
                      El 2: 
                          plid "b" (file "test_input.ml", line 140 (char 14-15))
                        =
                          pattern : type (file "test_input.ml", line 140 (char 18-27))
                            plid "z" (file "test_input.ml", line 140 (char 19-20))
                            typ lid int (file "test_input.ml", line 140 (char 23-26))
                  pattern empty array (file "test_input.ml", line 141 (char 4-9))
                array pattern - 3 els (file "test_input.ml", line 141 (char 12-23))
                  El 1: 
                    int patt 1 (file "test_input.ml", line 141 (char 15-16))
                  El 2: 
                    int patt 2 (file "test_input.ml", line 141 (char 17-18))
                  El 3: 
                    int patt 3 (file "test_input.ml", line 141 (char 19-20))
              three element patt list (file "test_input.ml", line 142 (char 4-11))
                int patt 1 (file "test_input.ml", line 142 (char 5-6))
                int patt 2 (file "test_input.ml", line 142 (char 7-8))
                int patt 3 (file "test_input.ml", line 142 (char 9-10))
            patt True (file "test_input.ml", line 143 (char 4-8))
          patt False (file "test_input.ml", line 143 (char 11-16))
      when empty
      ->
        False (file "test_input.ml", line 143 (char 20-25))
    case 2:
        or pattern (file "test_input.ml", line 144 (char 4-16))
          patt true (file "test_input.ml", line 144 (char 4-8))
          patt false (file "test_input.ml", line 144 (char 11-16))
      when empty
      ->
        True (file "test_input.ml", line 144 (char 20-24))
    case 3:
        or pattern (file "test_input.ml", line 145 (char 4) - line 147 (char 12))
          or pattern (file "test_input.ml", line 145 (char 4) - line 146 (char 21))
            patt rec/mod (file "test_input.ml", line 145 (char 4-9))
              patt rec/mod (file "test_input.ml", line 145 (char 4-7))
                PUID "A" (file "test_input.ml", line 145 (char 4-5))
                PUID "B" (file "test_input.ml", line 145 (char 6-7))
              plid "c" (file "test_input.ml", line 145 (char 8-9))
            patt list :: (file "test_input.ml", line 146 (char 4-21))
              int patt 0 (file "test_input.ml", line 146 (char 4-5))
              patt list :: (file "test_input.ml", line 146 (char 7-21))
                int patt 1 (file "test_input.ml", line 146 (char 7-8))
                three element patt list (file "test_input.ml", line 146 (char 10-21))
                  int patt 2 (file "test_input.ml", line 146 (char 10-11))
                  int patt 3 (file "test_input.ml", line 146 (char 13-14))
                  int patt 4 (file "test_input.ml", line 146 (char 16-17))
          patt 0 :: 1 :: [] (file "test_input.ml", line 147 (char 4-12))
      when empty
      ->
        unit (file "test_input.ml", line 147 (char 21-23))
    case 4:
        or pattern (file "test_input.ml", line 148 (char 4) - line 161 (char 13))
          or pattern (file "test_input.ml", line 148 (char 4) - line 160 (char 10))
            or pattern (file "test_input.ml", line 148 (char 4) - line 159 (char 7))
              or pattern (file "test_input.ml", line 148 (char 4) - line 158 (char 10))
                or pattern (file "test_input.ml", line 148 (char 4) - line 157 (char 9))
                  or pattern (file "test_input.ml", line 148 (char 4) - line 156 (char 6))
                    or pattern (file "test_input.ml", line 148 (char 4) - line 155 (char 6))
                      or pattern (file "test_input.ml", line 148 (char 4) - line 154 (char 6))
                        or pattern (file "test_input.ml", line 148 (char 4) - line 153 (char 5))
                          or pattern (file "test_input.ml", line 148 (char 4) - line 152 (char 6))
                            or pattern (file "test_input.ml", line 148 (char 4) - line 151 (char 5))
                              or pattern (file "test_input.ml", line 148 (char 4) - line 150 (char 12))
                                or pattern (file "test_input.ml", line 148 (char 4) - line 149 (char 16))
                                  tuple pattern 0,1 (file "test_input.ml", line 148 (char 4-7))
                                  tuple pattern - 3 els (file "test_input.ml", line 149 (char 4-16))
                                    El 1: 
                                      int patt 2 (file "test_input.ml", line 149 (char 4-5))
                                    El 2: 
                                      pattern range (file "test_input.ml", line 149 (char 6-14))
                                        char patt a (file "test_input.ml", line 149 (char 6-9))
                                        char patt f (file "test_input.ml", line 149 (char 11-14))
                                    El 3: 
                                      int patt 8 (file "test_input.ml", line 149 (char 15-16))
                                pattern alias x (file "test_input.ml", line 150 (char 5-11))
                                  anon _ (file "test_input.ml", line 150 (char 5-6))
                              plid "a" (file "test_input.ml", line 151 (char 4-5))
                            int -5 pattern (file "test_input.ml", line 152 (char 4-6))
                          int patt 5 (file "test_input.ml", line 153 (char 4-5))
                        int32 patt 6 (file "test_input.ml", line 154 (char 4-6))
                      int64 patt 7 (file "test_input.ml", line 155 (char 4-6))
                    nativeint patt 8 (file "test_input.ml", line 156 (char 4-6))
                  strint patt abc (file "test_input.ml", line 157 (char 4-9))
                float patt 7.4E+2 (file "test_input.ml", line 158 (char 4-10))
              char patt l (file "test_input.ml", line 159 (char 4-7))
            pattern application (file "test_input.ml", line 160 (char 4-10))
              pattern application (file "test_input.ml", line 160 (char 4-10))
                PUID "A" (file "test_input.ml", line 160 (char 4-5))
                plid "a" (file "test_input.ml", line 160 (char 6-7))
              plid "b" (file "test_input.ml", line 160 (char 8-9))
          pattern application (file "test_input.ml", line 161 (char 4-13))
            PUID "Some" (file "test_input.ml", line 161 (char 4-8))
            tuple pattern - 2 els (file "test_input.ml", line 161 (char 9-12))
              El 1: 
                plid "a" (file "test_input.ml", line 161 (char 9-10))
              El 2: 
                plid "b" (file "test_input.ml", line 161 (char 11-12))
      when empty
      ->
        lid "b" (file "test_input.ml", line 161 (char 17-18))
top level expr (file "test_input.ml", line 162 (char 0-10))
  mutable assign (file "test_input.ml", line 162 (char 0-10))
    string get (file "test_input.ml", line 162 (char 0-5))
      lid "a" (file "test_input.ml", line 162 (char 0-1))
      int const 2 (file "test_input.ml", line 162 (char 3-4))
    int const 5 (file "test_input.ml", line 162 (char 9-10))
top level expr (file "test_input.ml", line 163 (char 0-10))
  mutable assign (file "test_input.ml", line 163 (char 0-10))
    array get (file "test_input.ml", line 163 (char 0-5))
      lid "a" (file "test_input.ml", line 163 (char 0-1))
      int const 2 (file "test_input.ml", line 163 (char 3-4))
    int const 5 (file "test_input.ml", line 163 (char 9-10))
external *** : int -> int = "a" "b" (file "test_input.ml", line 164 (char 0-39))
external a with 2 strings (file "test_input.ml", line 165 (char 0-33))
  function type (file "test_input.ml", line 165 (char 13-23))
    typ lid int (file "test_input.ml", line 165 (char 13-16))
    typ lid int (file "test_input.ml", line 165 (char 20-23))
  string 1: 
    a
  string 2: 
    b
exception A with 2 args and rebind (file "test_input.ml", line 166 (char 0-30))
    Arg 1: 
      typ lid int (file "test_input.ml", line 166 (char 15-18))
    Arg 2: 
      typ lid int (file "test_input.ml", line 166 (char 21-24))
  rebind to U.A
exception A with 2 args (file "test_input.ml", line 167 (char 0-24))
  Arg 1: 
    typ lid int (file "test_input.ml", line 167 (char 15-18))
  Arg 2: 
    typ lid int (file "test_input.ml", line 167 (char 21-24))
open (file "test_input.ml", line 168 (char 0-10))
  U.V.C
type decl with 1 types (file "test_input.ml", line 169 (char 0-44))
  decl 1:
    type declaration a (file "test_input.ml", line 169 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 169 (char 0-44))
    type information:
      record with 2 labels (file "test_input.ml", line 169 (char 9-44))
        field 1: 
          a (file "test_input.ml", line 169 (char 11-24))
          poly type 'a 'b . c (file "test_input.ml", line 169 (char 15-24))
        field 2: 
          d (file "test_input.ml", line 169 (char 26-42))
          poly type tv list with 3 tv (file "test_input.ml", line 169 (char 30-42))
            type var 1: 
              tick a
            type var 2: 
              tick b
            type var 3: 
              tick c
            typ lid t (file "test_input.ml", line 169 (char 41-42))
type decl with 1 types (file "test_input.ml", line 170 (char 0-12))
  decl 1:
    type declaration a (file "test_input.ml", line 170 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 170 (char 0-12))
    type information:
      type abbreviation (file "test_input.ml", line 170 (char 9-12))
        type module access (file "test_input.ml", line 170 (char 9-12))
          typ uid U (file "test_input.ml", line 170 (char 9-10))
          typ lid a (file "test_input.ml", line 170 (char 11-12))
type decl with 1 types (file "test_input.ml", line 171 (char 0-69))
  decl 1:
    type declaration e (file "test_input.ml", line 171 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 171 (char 0-69))
    type information:
      type abbreviation (file "test_input.ml", line 171 (char 9-69))
        alias type tick a  (file "test_input.ml", line 171 (char 9-69))
          function type (file "test_input.ml", line 171 (char 9-63))
            typ lid a (file "test_input.ml", line 171 (char 9-10))
            function type (file "test_input.ml", line 171 (char 14-63))
              tuple type a * b * c (file "test_input.ml", line 171 (char 14-23))
              tuple type with 2 elements (file "test_input.ml", line 171 (char 27-63))
                El 1: 
                  type application (file "test_input.ml", line 171 (char 27-47))
                    type application (file "test_input.ml", line 171 (char 27-47))
                      type application (file "test_input.ml", line 171 (char 27-47))
                        typ lid tyconstr (file "test_input.ml", line 171 (char 39-47))
                        tick c (file "test_input.ml", line 171 (char 28-30))
                      anon type (file "test_input.ml", line 171 (char 32-33))
                    tick e (file "test_input.ml", line 171 (char 35-37))
                El 2: 
                  ('a, 'b) tree (file "test_input.ml", line 171 (char 50-63))
type decl with 1 types (file "test_input.ml", line 172 (char 0-18))
  decl 1:
    type declaration e (file "test_input.ml", line 172 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 172 (char 0-18))
    type information:
      record with 1 labels (file "test_input.ml", line 172 (char 9-18))
        field 1: 
          a (file "test_input.ml", line 172 (char 10-17))
          typ lid int (file "test_input.ml", line 172 (char 14-17))
type decl with 1 types (file "test_input.ml", line 173 (char 0-31))
  decl 1:
    type declaration a (file "test_input.ml", line 173 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 173 (char 0-31))
    type information:
      manifest variant type with 2 variants (file "test_input.ml", line 173 (char 9-31))
        name:
          typ lid f (file "test_input.ml", line 173 (char 9-10))
        constructors: (file "test_input.ml", line 173 (char 9-31))
          variant 1:
            A with 3 args (file "test_input.ml", line 173 (char 13-27))
              Arg 1: 
                typ lid a (file "test_input.ml", line 173 (char 18-19))
              Arg 2: 
                typ lid b (file "test_input.ml", line 173 (char 22-23))
              Arg 3: 
                typ lid c (file "test_input.ml", line 173 (char 26-27))
          variant 2:
            B with 0 args (file "test_input.ml", line 173 (char 30-31))
type decl with 1 types (file "test_input.ml", line 174 (char 0-39))
  decl 1:
    type declaration a (file "test_input.ml", line 174 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 174 (char 0-39))
    type information:
      private manifest type (file "test_input.ml", line 174 (char 9-39))
        name:
          typ lid f (file "test_input.ml", line 174 (char 9-10))
        type info: (file "test_input.ml", line 174 (char 9-39))
          variant type with 2 variants (file "test_input.ml", line 174 (char 21-39))
            variant 1:
              A with 3 args (file "test_input.ml", line 174 (char 21-35))
                Arg 1: 
                  typ lid a (file "test_input.ml", line 174 (char 26-27))
                Arg 2: 
                  typ lid b (file "test_input.ml", line 174 (char 30-31))
                Arg 3: 
                  typ lid c (file "test_input.ml", line 174 (char 34-35))
            variant 2:
              B with 0 args (file "test_input.ml", line 174 (char 38-39))
type decl with 1 types (file "test_input.ml", line 175 (char 0-22))
  decl 1:
    type declaration e (file "test_input.ml", line 175 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 175 (char 0-22))
    type information:
      manifest record with 1 labels (file "test_input.ml", line 175 (char 9-22))
        name:
          typ lid f (file "test_input.ml", line 175 (char 9-10))
        fields: (file "test_input.ml", line 175 (char 9-22))
          field 1: 
            a (file "test_input.ml", line 175 (char 14-21))
            typ lid int (file "test_input.ml", line 175 (char 18-21))
type decl with 1 types (file "test_input.ml", line 176 (char 0-30))
  decl 1:
    type declaration e (file "test_input.ml", line 176 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 176 (char 0-30))
    type information:
      private manifest type (file "test_input.ml", line 176 (char 9-30))
        name:
          typ lid f (file "test_input.ml", line 176 (char 9-10))
        type info: (file "test_input.ml", line 176 (char 9-30))
          record with 1 labels (file "test_input.ml", line 176 (char 21-30))
            field 1: 
              a (file "test_input.ml", line 176 (char 22-29))
              typ lid int (file "test_input.ml", line 176 (char 26-29))
type decl with 1 types (file "test_input.ml", line 177 (char 0-42))
  decl 1:
    type declaration a (file "test_input.ml", line 177 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 177 (char 0-42))
    type information:
      variant type with 3 variants (file "test_input.ml", line 177 (char 9-42))
        variant 1:
          A with 3 args (file "test_input.ml", line 177 (char 9-23))
            Arg 1: 
              typ lid a (file "test_input.ml", line 177 (char 14-15))
            Arg 2: 
              typ lid b (file "test_input.ml", line 177 (char 18-19))
            Arg 3: 
              typ lid c (file "test_input.ml", line 177 (char 22-23))
        variant 2:
          B with 0 args (file "test_input.ml", line 177 (char 26-27))
        variant 3:
          C with 1 args (file "test_input.ml", line 177 (char 30-42))
            Arg 1: 
              tuple type with 2 elements (file "test_input.ml", line 177 (char 36-41))
                El 1: 
                  typ lid a (file "test_input.ml", line 177 (char 36-37))
                El 2: 
                  typ lid b (file "test_input.ml", line 177 (char 40-41))
type decl with 1 types (file "test_input.ml", line 178 (char 0-52))
  decl 1:
    type declaration a (file "test_input.ml", line 178 (char 5-6))
    with 0 tp and 0 constraints (file "test_input.ml", line 178 (char 0-52))
    type information:
      private type (file "test_input.ml", line 178 (char 9-52))
        variant type with 3 variants (file "test_input.ml", line 178 (char 17-52))
          variant 1:
            A with 3 args (file "test_input.ml", line 178 (char 19-33))
              Arg 1: 
                typ lid a (file "test_input.ml", line 178 (char 24-25))
              Arg 2: 
                typ lid b (file "test_input.ml", line 178 (char 28-29))
              Arg 3: 
                typ lid c (file "test_input.ml", line 178 (char 32-33))
          variant 2:
            B with 0 args (file "test_input.ml", line 178 (char 36-37))
          variant 3:
            C with 1 args (file "test_input.ml", line 178 (char 40-52))
              Arg 1: 
                tuple type with 2 elements (file "test_input.ml", line 178 (char 46-51))
                  El 1: 
                    typ lid a (file "test_input.ml", line 178 (char 46-47))
                  El 2: 
                    typ lid b (file "test_input.ml", line 178 (char 50-51))
type decl with 2 types (file "test_input.ml", line 179 (char 0-74))
  decl 1:
    type declaration b (file "test_input.ml", line 179 (char 9-10))
    with 1 tp and 1 constraints (file "test_input.ml", line 179 (char 0-30))
      abstract_type (file "test_input.ml", line 179 (char 5-30))
      rhs tv b
      type parameters:
        type parameter 1: 
          + a
      constraints:
        constraint 1:
            tick a (file "test_input.ml", line 179 (char 22-24))
          =
            typ lid int (file "test_input.ml", line 179 (char 27-30))
  decl 2:
    type declaration e (file "test_input.ml", line 179 (char 45-46))
    with 2 tp and 0 constraints (file "test_input.ml", line 179 (char 30-74))
    type parameters:
      type parameter 1: 
        = c
      type parameter 2: 
        - d
    type information:
      private type (file "test_input.ml", line 179 (char 49-74))
        record with 2 labels (file "test_input.ml", line 179 (char 57-74))
          field 1: 
            a (file "test_input.ml", line 179 (char 58-65))
            typ lid int (file "test_input.ml", line 179 (char 62-65))
          field 2: 
            b (file "test_input.ml", line 179 (char 67-73))
            tick c (file "test_input.ml", line 179 (char 71-73))
let rec in (str item) with 2 bindings (file "test_input.ml", line 180 (char 0-32))
    bind 1:
        plid "a" (file "test_input.ml", line 180 (char 8-9))
      to
        int const 1 (file "test_input.ml", line 180 (char 12-13))
    bind 2:
        plid "c" (file "test_input.ml", line 180 (char 18-19))
      to
        fun (file "test_input.ml", line 180 (char 18-19))
            plid "d" (file "test_input.ml", line 180 (char 20-21))
          ->
            fun (file "test_input.ml", line 180 (char 18-19))
                plid "e" (file "test_input.ml", line 180 (char 22-23))
              ->
                int const 2 (file "test_input.ml", line 180 (char 26-27))
  in
    int const 3 (file "test_input.ml", line 180 (char 31-32))
let (str item) with 2 bindings (file "test_input.ml", line 181 (char 0-19))
  bind 1:
      plid "a" (file "test_input.ml", line 181 (char 4-5))
    to
      int const 1 (file "test_input.ml", line 181 (char 8-9))
  bind 2:
      plid "b" (file "test_input.ml", line 181 (char 14-15))
    to
      int const 2 (file "test_input.ml", line 181 (char 18-19))
top level expr (file "test_input.ml", line 182 (char 0-8))
  mutable assign (file "test_input.ml", line 182 (char 0-8))
    rec/modul access (file "test_input.ml", line 182 (char 0-3))
      lid "a" (file "test_input.ml", line 182 (char 0-1))
      lid "v" (file "test_input.ml", line 182 (char 2-3))
    int const 0 (file "test_input.ml", line 182 (char 7-8))
top level expr (file "test_input.ml", line 183 (char 0-6))
  assignment (file "test_input.ml", line 183 (char 0-6))
    lid "a" (file "test_input.ml", line 183 (char 0-1))
    int const 3 (file "test_input.ml", line 183 (char 5-6))
top level expr (file "test_input.ml", line 184 (char 0-10))
  bigarray 1 set (file "test_input.ml", line 184 (char 0-10))
    lid "a" (file "test_input.ml", line 184 (char 0-1))
    int const 1 (file "test_input.ml", line 184 (char 3-4))
    int const 2 (file "test_input.ml", line 184 (char 9-10))
top level expr (file "test_input.ml", line 185 (char 0-12))
  bigarray 2 set (file "test_input.ml", line 185 (char 0-12))
      lid "a" (file "test_input.ml", line 185 (char 0-1))
    Arg 1
      int const 1 (file "test_input.ml", line 185 (char 3-4))
    Arg 2
      int const 2 (file "test_input.ml", line 185 (char 5-6))
    Val
      int const 3 (file "test_input.ml", line 185 (char 11-12))
top level expr (file "test_input.ml", line 186 (char 0-14))
  bigarray 3 set (file "test_input.ml", line 186 (char 0-14))
      lid "a" (file "test_input.ml", line 186 (char 0-1))
    Arg 1
      int const 1 (file "test_input.ml", line 186 (char 3-4))
    Arg 2
      int const 2 (file "test_input.ml", line 186 (char 5-6))
    Arg 3
      int const 3 (file "test_input.ml", line 186 (char 7-8))
    Val
      int const 4 (file "test_input.ml", line 186 (char 13-14))
top level expr (file "test_input.ml", line 187 (char 0-16))
  genarray set (file "test_input.ml", line 187 (char 0-16))
      lid "a" (file "test_input.ml", line 187 (char 0-1))
    coords:
      Arg 1: 
        int const 1 (file "test_input.ml", line 187 (char 3-4))
      Arg 2: 
        int const 2 (file "test_input.ml", line 187 (char 5-6))
      Arg 3: 
        int const 3 (file "test_input.ml", line 187 (char 7-8))
      Arg 4: 
        int const 4 (file "test_input.ml", line 187 (char 9-10))
    Val:
      int const 5 (file "test_input.ml", line 187 (char 15-16))
top level expr (file "test_input.ml", line 188 (char 0-51))
  for a downto with 2 statements (file "test_input.ml", line 188 (char 0-51))
    from:
      int const 2 (file "test_input.ml", line 188 (char 8-9))
    to:
      int const 0 (file "test_input.ml", line 188 (char 17-18))
    statements:
      El 1:
        int const 1 (file "test_input.ml", line 188 (char 22-23))
      El 2:
        while with 3 statements (file "test_input.ml", line 188 (char 25-46))
          lid "a" (file "test_input.ml", line 188 (char 31-32))
          El 1:
            int const 1 (file "test_input.ml", line 188 (char 36-37))
          El 2:
            int const 2 (file "test_input.ml", line 188 (char 38-39))
          El 3:
            int const 3 (file "test_input.ml", line 188 (char 40-41))
top level expr (file "test_input.ml", line 189 (char 0-27))
  for a -- 2 statements (file "test_input.ml", line 189 (char 0-27))
    from:
      int const 2 (file "test_input.ml", line 189 (char 8-9))
    to:
      int const 3 (file "test_input.ml", line 189 (char 13-14))
    statement 1:
      int const 4 (file "test_input.ml", line 189 (char 18-19))
    statement 2:
      int const 5 (file "test_input.ml", line 189 (char 21-22))
top level expr (file "test_input.ml", line 190 (char 0) - line 198 (char 13))
  function with 3 patterns (file "test_input.ml", line 190 (char 0) - line 198 (char 13))
    case 1:
        plid "a" (file "test_input.ml", line 191 (char 4-5))
      when:
        = (file "test_input.ml", line 191 (char 11-16))
          int const 3 (file "test_input.ml", line 191 (char 11-12))
          int const 4 (file "test_input.ml", line 191 (char 15-16))
      ->
        int const 2 (file "test_input.ml", line 191 (char 20-21))
    case 2:
        anon _ (file "test_input.ml", line 192 (char 4-5))
      when empty
      ->
        if-then (file "test_input.ml", line 192 (char 9-23))
          true (file "test_input.ml", line 192 (char 12-16))
          int const 3 (file "test_input.ml", line 192 (char 22-23))
    case 3:
        plid "c" (file "test_input.ml", line 193 (char 4-5))
      when empty
      ->
        match with 1 cases (file "test_input.ml", line 193 (char 9) - line 198 (char 13))
          lid "c" (file "test_input.ml", line 193 (char 15-16))
          case 1:
              plid "d" (file "test_input.ml", line 194 (char 8-9))
            when empty
            ->
              try with 1 cases (file "test_input.ml", line 195 (char 3) - line 198 (char 13))
                if-then-else (file "test_input.ml", line 196 (char 5-23))
                  int const 3 (file "test_input.ml", line 196 (char 8-9))
                  int const 4 (file "test_input.ml", line 196 (char 15-16))
                  int const 5 (file "test_input.ml", line 196 (char 22-23))
                case 1:
                    plid "x" (file "test_input.ml", line 198 (char 7-8))
                  when empty
                  ->
                    lid "x" (file "test_input.ml", line 198 (char 12-13))
let (str item) with 1 bindings (file "test_input.ml", line 199 (char 0-30))
  bind 1:
      plid "z" (file "test_input.ml", line 199 (char 4-5))
    to
      let a b : <type follows> = 2 in 3 (file "test_input.ml", line 199 (char 8-30))
        typ lid int (file "test_input.ml", line 199 (char 18-21))
let (str item) with 1 bindings (file "test_input.ml", line 200 (char 0-53))
  bind 1:
      plid "z" (file "test_input.ml", line 200 (char 4-5))
    to
      let in (expr) with 1 bindings (file "test_input.ml", line 200 (char 8-53))
          bind 1:
              plid "a" (file "test_input.ml", line 200 (char 12-13))
            to
              int const 2 (file "test_input.ml", line 200 (char 16-17))
        in
          let rec in (expr) with 2 bindings (file "test_input.ml", line 200 (char 21-53))
              bind 1:
                  plid "b" (file "test_input.ml", line 200 (char 29-30))
                to
                  int const 3 (file "test_input.ml", line 200 (char 33-34))
              bind 2:
                  plid "c" (file "test_input.ml", line 200 (char 39-40))
                to
                  fun (file "test_input.ml", line 200 (char 39-40))
                      plid "d" (file "test_input.ml", line 200 (char 41-42))
                    ->
                      fun (file "test_input.ml", line 200 (char 39-40))
                          plid "e" (file "test_input.ml", line 200 (char 43-44))
                        ->
                          int const 4 (file "test_input.ml", line 200 (char 47-48))
            in
              int const 4 (file "test_input.ml", line 200 (char 52-53))
top level expr (file "test_input.ml", line 201 (char 0-17))
  sequence - 3 els (file "test_input.ml", line 201 (char 1-16))
    El 1
      two sequence (file "test_input.ml", line 201 (char 3-8))
        int const 0 (file "test_input.ml", line 201 (char 3-4))
        int const 1 (file "test_input.ml", line 201 (char 6-7))
    El 2
      int const 2 (file "test_input.ml", line 201 (char 12-13))
    El 3
      int const 3 (file "test_input.ml", line 201 (char 15-16))
top level expr (file "test_input.ml", line 202 (char 0) - line 203 (char 22))
  || (file "test_input.ml", line 202 (char 0) - line 203 (char 22))
    int const 0 (file "test_input.ml", line 202 (char 0-1))
    or (file "test_input.ml", line 202 (char 5) - line 203 (char 22))
      int const 1 (file "test_input.ml", line 202 (char 5-6))
      & (file "test_input.ml", line 202 (char 10) - line 203 (char 22))
        int const 2 (file "test_input.ml", line 202 (char 10-11))
        && (file "test_input.ml", line 202 (char 14) - line 203 (char 22))
          int const 3 (file "test_input.ml", line 202 (char 14-15))
          != (file "test_input.ml", line 202 (char 19) - line 203 (char 22))
            == (file "test_input.ml", line 202 (char 19-54))
              <> (file "test_input.ml", line 202 (char 19-48))
                = (file "test_input.ml", line 202 (char 19-42))
                  >= (file "test_input.ml", line 202 (char 19-38))
                    <= (file "test_input.ml", line 202 (char 19-33))
                      > (file "test_input.ml", line 202 (char 19-28))
                        < (file "test_input.ml", line 202 (char 19-24))
                          int const 4 (file "test_input.ml", line 202 (char 19-20))
                          int const 5 (file "test_input.ml", line 202 (char 23-24))
                        int const 6 (file "test_input.ml", line 202 (char 27-28))
                      int const 7 (file "test_input.ml", line 202 (char 32-33))
                    int const 8 (file "test_input.ml", line 202 (char 37-38))
                  int const 9 (file "test_input.ml", line 202 (char 41-42))
                int const 10 (file "test_input.ml", line 202 (char 46-48))
              int const 11 (file "test_input.ml", line 202 (char 52-54))
            ^ (file "test_input.ml", line 202 (char 58) - line 203 (char 22))
              int const 12 (file "test_input.ml", line 202 (char 58-60))
              @ (file "test_input.ml", line 203 (char 0-22))
                int const 14 (file "test_input.ml", line 203 (char 0-2))
                ^@ (file "test_input.ml", line 203 (char 5-22))
                  int const 15 (file "test_input.ml", line 203 (char 5-7))
                  === (file "test_input.ml", line 203 (char 12-21))
                    int const 15 (file "test_input.ml", line 203 (char 12-14))
                    int const 16 (file "test_input.ml", line 203 (char 19-21))
top level expr (file "test_input.ml", line 204 (char 0-15))
  :: (file "test_input.ml", line 204 (char 0-15))
    int const 0 (file "test_input.ml", line 204 (char 0-1))
    three element list (file "test_input.ml", line 204 (char 5-15))
      int const 1 (file "test_input.ml", line 204 (char 5-6))
      int const 2 (file "test_input.ml", line 204 (char 11-12))
      int const 3 (file "test_input.ml", line 204 (char 13-14))
top level expr (file "test_input.ml", line 205 (char 0-21))
  - (file "test_input.ml", line 205 (char 0-21))
    + (file "test_input.ml", line 205 (char 0-17))
      +. (file "test_input.ml", line 205 (char 0-13))
        +.+. (file "test_input.ml", line 205 (char 0-8))
          int const 0 (file "test_input.ml", line 205 (char 0-1))
          int const 1 (file "test_input.ml", line 205 (char 7-8))
        int const 2 (file "test_input.ml", line 205 (char 12-13))
      int const 3 (file "test_input.ml", line 205 (char 16-17))
    int const 4 (file "test_input.ml", line 205 (char 20-21))
top level expr (file "test_input.ml", line 206 (char 0-51))
  mod (file "test_input.ml", line 206 (char 0-51))
    lxor (file "test_input.ml", line 206 (char 0-45))
      lor (file "test_input.ml", line 206 (char 0-38))
        land (file "test_input.ml", line 206 (char 0-32))
          * (file "test_input.ml", line 206 (char 0-25))
            / (file "test_input.ml", line 206 (char 0-21))
              *. (file "test_input.ml", line 206 (char 0-17))
                % (file "test_input.ml", line 206 (char 0-12))
                  %%%% (file "test_input.ml", line 206 (char 0-8))
                    int const 9 (file "test_input.ml", line 206 (char 0-1))
                    int const 0 (file "test_input.ml", line 206 (char 7-8))
                  int const 1 (file "test_input.ml", line 206 (char 11-12))
                int const 2 (file "test_input.ml", line 206 (char 16-17))
              int const 3 (file "test_input.ml", line 206 (char 20-21))
            int const 4 (file "test_input.ml", line 206 (char 24-25))
          int const 5 (file "test_input.ml", line 206 (char 31-32))
        int const 6 (file "test_input.ml", line 206 (char 37-38))
      int const 7 (file "test_input.ml", line 206 (char 44-45))
    int const 8 (file "test_input.ml", line 206 (char 50-51))
top level expr (file "test_input.ml", line 207 (char 0-41))
  tuple - 6 els (file "test_input.ml", line 207 (char 0-41))
    El 1: 
      int const -5 (file "test_input.ml", line 207 (char 0-2))
    El 2: 
      minus minus 5 (file "test_input.ml", line 207 (char 5-9))
    El 3: 
      int32 const -6 (file "test_input.ml", line 207 (char 13-15))
    El 4: 
      int neg (file "test_input.ml", line 207 (char 18-25))
        int neg (file "test_input.ml", line 207 (char 20-25))
          minus 7L (file "test_input.ml", line 207 (char 23-25))
    El 5: 
      nativeint const -8 (file "test_input.ml", line 207 (char 29-31))
    El 6: 
      minus minus 7.0 (file "test_input.ml", line 207 (char 34-40))
top level expr (file "test_input.ml", line 208 (char 0-22))
  Some 2 tuple (file "test_input.ml", line 208 (char 0-22))
    El 1 
      Some(1, 2, 3) (file "test_input.ml", line 208 (char 5-16))
    El 2 
      application (file "test_input.ml", line 208 (char 18-21))
        lid "f" (file "test_input.ml", line 208 (char 18-19))
        lid "a" (file "test_input.ml", line 208 (char 20-21))
top level expr (file "test_input.ml", line 209 (char 0-25))
  assert (file "test_input.ml", line 209 (char 0-25))
    lazy (file "test_input.ml", line 209 (char 7-24))
      assert false (file "test_input.ml", line 209 (char 12-24))
top level expr (file "test_input.ml", line 210 (char 0-5))
  bigarray 1 get (file "test_input.ml", line 210 (char 0-5))
    lid "a" (file "test_input.ml", line 210 (char 0-1))
    int const 1 (file "test_input.ml", line 210 (char 3-4))
top level expr (file "test_input.ml", line 211 (char 0-7))
  bigarray 2 get (file "test_input.ml", line 211 (char 0-7))
    lid "a" (file "test_input.ml", line 211 (char 0-1))
    int const 1 (file "test_input.ml", line 211 (char 3-4))
    int const 2 (file "test_input.ml", line 211 (char 5-6))
top level expr (file "test_input.ml", line 212 (char 0-9))
  bigarray 3 get (file "test_input.ml", line 212 (char 0-9))
      lid "a" (file "test_input.ml", line 212 (char 0-1))
    Arg 1
      int const 1 (file "test_input.ml", line 212 (char 3-4))
    Arg 2
      int const 2 (file "test_input.ml", line 212 (char 5-6))
    Arg 3
      int const 3 (file "test_input.ml", line 212 (char 7-8))
top level expr (file "test_input.ml", line 213 (char 0-11))
  genarray get (file "test_input.ml", line 213 (char 0-11))
    lid "a" (file "test_input.ml", line 213 (char 0-1))
    Arg 1: 
      int const 1 (file "test_input.ml", line 213 (char 3-4))
    Arg 2: 
      int const 2 (file "test_input.ml", line 213 (char 5-6))
    Arg 3: 
      int const 3 (file "test_input.ml", line 213 (char 7-8))
    Arg 4: 
      int const 4 (file "test_input.ml", line 213 (char 9-10))
top level expr (file "test_input.ml", line 214 (char 0-5))
  tuple - 3 els (file "test_input.ml", line 214 (char 0-5))
    El 1: 
      int const 2 (file "test_input.ml", line 214 (char 0-1))
    El 2: 
      int const 3 (file "test_input.ml", line 214 (char 2-3))
    El 3: 
      int const 4 (file "test_input.ml", line 214 (char 4-5))
top level expr (file "test_input.ml", line 215 (char 0-3))
  two tuple (file "test_input.ml", line 215 (char 0-3))
    int const 2 (file "test_input.ml", line 215 (char 0-1))
    int const 3 (file "test_input.ml", line 215 (char 2-3))
top level expr (file "test_input.ml", line 216 (char 0-14))
  float neg (file "test_input.ml", line 216 (char 0-14))
    int neg (file "test_input.ml", line 216 (char 4-14))
      ref contents (file "test_input.ml", line 216 (char 7-14))
        !<! (file "test_input.ml", line 216 (char 9-14))
          lid "x" (file "test_input.ml", line 216 (char 13-14))
top level expr (file "test_input.ml", line 217 (char 0-38))
  typed ex (file "test_input.ml", line 217 (char 0-38))
    typed ex (file "test_input.ml", line 217 (char 1-31))
      typed ex (file "test_input.ml", line 217 (char 2-25))
        typed ex (file "test_input.ml", line 217 (char 3-18))
          ** (file "test_input.ml", line 217 (char 5-11))
            int const 3 (file "test_input.ml", line 217 (char 5-6))
            int const 4 (file "test_input.ml", line 217 (char 10-11))
          typ lid int (file "test_input.ml", line 217 (char 14-17))
        tick a (file "test_input.ml", line 217 (char 21-23))
      anon type (file "test_input.ml", line 217 (char 28-29))
    typ uid UU (file "test_input.ml", line 217 (char 34-36))
top level expr (file "test_input.ml", line 218 (char 0-11))
  int const 2 (file "test_input.ml", line 218 (char 6-7))
top level expr (file "test_input.ml", line 219 (char 0-9))
  unit (file "test_input.ml", line 219 (char 0-9))
top level expr (file "test_input.ml", line 220 (char 0-30))
  ** (file "test_input.ml", line 220 (char 0-30))
    int const 2 (file "test_input.ml", line 220 (char 0-1))
    asr (file "test_input.ml", line 220 (char 5-30))
      int const 3 (file "test_input.ml", line 220 (char 5-6))
      lsl (file "test_input.ml", line 220 (char 11-30))
        int const 4 (file "test_input.ml", line 220 (char 11-12))
        lsr (file "test_input.ml", line 220 (char 17-30))
          int const 5 (file "test_input.ml", line 220 (char 17-18))
          *** (file "test_input.ml", line 220 (char 23-30))
            int const 6 (file "test_input.ml", line 220 (char 23-24))
            int const 4 (file "test_input.ml", line 220 (char 29-30))
top level expr (file "test_input.ml", line 221 (char 0-7))
  infix *** (file "test_input.ml", line 221 (char 0-7))
top level expr (file "test_input.ml", line 222 (char 0-5))
  infix lsl (file "test_input.ml", line 222 (char 0-5))
top level expr (file "test_input.ml", line 223 (char 0-4))
  infix ++ (file "test_input.ml", line 223 (char 0-4))
top level expr (file "test_input.ml", line 224 (char 0-2))
  unit (file "test_input.ml", line 224 (char 0-2))
top level expr (file "test_input.ml", line 225 (char 0-22))
  record with 3 fields (file "test_input.ml", line 225 (char 0-22))
    field 1: 
      plid "a" (file "test_input.ml", line 225 (char 2-3))
      int const 2 (file "test_input.ml", line 225 (char 6-7))
    field 2: 
      plid "b" (file "test_input.ml", line 225 (char 9-10))
      int const 3 (file "test_input.ml", line 225 (char 13-14))
    field 3: 
      plid "c" (file "test_input.ml", line 225 (char 16-17))
      int const 4 (file "test_input.ml", line 225 (char 20-21))
top level expr (file "test_input.ml", line 226 (char 0-16))
  two field record (file "test_input.ml", line 226 (char 0-16))
    id1: (file "test_input.ml", line 226 (char 0-16))
      plid "a" (file "test_input.ml", line 226 (char 2-3))
      int const 2 (file "test_input.ml", line 226 (char 6-7))
    id2: (file "test_input.ml", line 226 (char 0-16))
      plid "b" (file "test_input.ml", line 226 (char 9-10))
      int const 3 (file "test_input.ml", line 226 (char 13-14))
top level expr (file "test_input.ml", line 227 (char 0-24))
  record update (file "test_input.ml", line 227 (char 0-24))
    expr:
      lid "a" (file "test_input.ml", line 227 (char 2-3))
    with 2 updates:
      update 1: 
        plid "b" (file "test_input.ml", line 227 (char 9-10))
        int const 5 (file "test_input.ml", line 227 (char 13-14))
      update 2: 
        plid "c" (file "test_input.ml", line 227 (char 16-17))
        int const 6 (file "test_input.ml", line 227 (char 20-21))
top level expr (file "test_input.ml", line 228 (char 0-5))
  empty array (file "test_input.ml", line 228 (char 0-5))
top level expr (file "test_input.ml", line 229 (char 0-11))
  array 3 elements (file "test_input.ml", line 229 (char 0-11))
    El 1 
      int const 1 (file "test_input.ml", line 229 (char 3-4))
    El 2 
      int const 2 (file "test_input.ml", line 229 (char 5-6))
    El 3 
      int const 3 (file "test_input.ml", line 229 (char 7-8))
top level expr (file "test_input.ml", line 230 (char 0-2))
  nil (file "test_input.ml", line 230 (char 0-2))
top level expr (file "test_input.ml", line 231 (char 0-7))
  three element list (file "test_input.ml", line 231 (char 0-7))
    int const 1 (file "test_input.ml", line 231 (char 1-2))
    int const 2 (file "test_input.ml", line 231 (char 3-4))
    int const 3 (file "test_input.ml", line 231 (char 5-6))
top level expr (file "test_input.ml", line 232 (char 0-4))
  true (file "test_input.ml", line 232 (char 0-4))
top level expr (file "test_input.ml", line 233 (char 0-5))
  false (file "test_input.ml", line 233 (char 0-5))
top level expr (file "test_input.ml", line 234 (char 0-5))
  rec/modul access (file "test_input.ml", line 234 (char 0-5))
    rec/modul access (file "test_input.ml", line 234 (char 0-5))
      uid "A" (file "test_input.ml", line 234 (char 0-5))
      uid "B" (file "test_input.ml", line 234 (char 2-5))
    lid "c" (file "test_input.ml", line 234 (char 4-5))
top level expr (file "test_input.ml", line 235 (char 0-1))
  uid "A" (file "test_input.ml", line 235 (char 0-1))
top level expr (file "test_input.ml", line 236 (char 0-1))
  lid "a" (file "test_input.ml", line 236 (char 0-1))
top level expr (file "test_input.ml", line 237 (char 0-1))
  int const 5 (file "test_input.ml", line 237 (char 0-1))
top level expr (file "test_input.ml", line 238 (char 0-2))
  int32 const 6 (file "test_input.ml", line 238 (char 0-2))
top level expr (file "test_input.ml", line 239 (char 0-2))
  int64 const 7 (file "test_input.ml", line 239 (char 0-2))
top level expr (file "test_input.ml", line 240 (char 0-2))
  nativeint const 8 (file "test_input.ml", line 240 (char 0-2))
top level expr (file "test_input.ml", line 241 (char 0-5))
  string const "abc" (file "test_input.ml", line 241 (char 0-5))
top level expr (file "test_input.ml", line 242 (char 0-6))
  float const 7.4E+2 (file "test_input.ml", line 242 (char 0-6))
top level expr (file "test_input.ml", line 243 (char 0-3))
  char const l (file "test_input.ml", line 243 (char 0-3))

