;; -*-theme-d-*-

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

;; Expected results: translation error

(define-proper-program (tests test458)


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


  (define-param-proc list->nonpure-stream (%type)
		     (((l (:uniform-list %type)))
		      (:nonpure-stream %type)
		      nonpure)
    (match-type l
      ((<null>) null)
      ((l2 (:nonempty-uniform-list %type))
       (cons (car l2) (delay (list->nonpure-stream (cdr l2)))))))


  (define-simple-proc main (() <none> nonpure)
    (let* ((l (:uniform-list <integer>) '(1 2 3 4 5))
	   (stream (list->nonpure-stream l))
	   (l2 (nonpure-stream->list stream)))
      (console-display-line l)
      (console-display-line l2))))

