;; -*-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 error
;;   Theme-D is not smart enough to deduce value for type parameter %arglist.


(define-proper-program (tests test16)


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


  (define-param-logical-type :triplet (%type1 %type2 %type3)
    (:tuple %type1 %type2 %type3))


  (define-param-proc-alt my-proc (%arglist)
    (lambda (((arglist (:triplet (splice %arglist))))
	     <integer>
	     pure)
      (car arglist)))


  (define main
    (lambda (() <integer> nonpure)
      (let* ((trp
	      (list 1 2 3))
	     (result (my-proc trp)))
	(console-display result)
	(console-newline)
	0))))
