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