;; -*-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 test355)


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

  (define-param-proc-alt my-append-tuples (%tuple1 %tuple2)
    (lambda (((l1 %tuple1) (l2 %tuple2))
	     (join-tuple-types %tuple1 %tuple2)
	     pure)
      (let* ((result-type (join-tuple-types %tuple1 %tuple2))
	     (result (cast result-type (append-tuples l1 l2))))
	result)))

  (define main
    (lambda (() <integer> nonpure)
      (let* ((lst1 (list 1 2 3 4 5))
	     (lst2 (list "a" "b" "c" "d" "e"))
	     (result (my-append-tuples lst1 lst2)))
	(console-display result)
	(console-newline))
      0)))
