;; -*-theme-*-

;; Copyright (C) 2015  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 test357)


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

  (define-param-class :singleton (%element) <object> #f #f #f module ()
    ((obj %element module module)))

  (define-param-class :assoc-list (%key %value) <object> #t #f #f module ()
    ((l-contents (:uniform-list (:pair %key (:singleton %value)))
		 module module)))

  (define-param-proc make-assoc-list (%key %value)
		     (() (:assoc-list %key %value) pure)
    (make (:assoc-list %key %value) null))

  (define-simple-proc main (() <none> nonpure)
    (let ((al ((param-proc-instance make-assoc-list <symbol> <string>))))
      (console-display-line 1)))

  )
