;; -*-theme-d-*-

;; Copyright (C) 2008-2013 Tommi Höynälänmaa
;; Distributed under GNU General Public License version 3,
;; see file doc/GPL-3.

;; Expected results: translation and running OK


(define-proper-program (tests test113)


  (import (standard-library core)
	  (standard-library console-io))


  (define-simple-proc main (() <none> nonpure)
    (let* ((lst (list 1.0 2.1 3.0 -2.1 5.6))
	   (sum
	    (let-mutable ((tmp <real> 0.0))
			 (do ((cur (:uniform-list <real>) lst
				   (cdr (cast (:nonempty-uniform-list <real>) cur)))
			      (i <integer> 0 (+ i 1)))
			     ((equal? cur null) tmp)
			   (let ((obj (car (cast
					    (:nonempty-uniform-list <real>)
					    cur))))
			     (console-display i)
			     (console-display-string " ")
			     (console-display obj)
			     (console-newline)
			     (set! tmp (+ tmp obj)))))))
      (console-display sum)
      (console-newline))))
 