(let ((type r1 (record (a int) (b string) (c int)))
      (type r2 (record (r1 r1)))
      (type r3 (record (r2 r2)))
      (type r4 (record (r3 r3)))
      (type ar_r4 (array r4))
      (var a ar_r4 (new-array ar_r4 10 10)))
  (:=
   (dot (dot (dot (dot (aref a 5) r3) r2) r1) a)
   (dot (dot (dot (dot (aref a 4) r3) r2) r1) c)))
