;; -*-theme-d-*-

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

;; Expected results: compilation OK


(define-interface (tests test280)

  (import (standard-library core))

  (define-goops-class <a> <a> <object> #t #f #f #t ()
    eqv? eqv?)

  (declare make-a (:simple-proc (<integer>) <a> pure))

  (declare get-x (:simple-proc (<a>) <integer> pure))

  (declare set-x! (:simple-proc (<a> <integer>) <none> nonpure))

  (define-goops-class <b> <b> <a> #t #f #f #t ()
    eqv? eqv?)

  (declare make-b (:simple-proc (<integer> <real>) <b> pure))

  (declare get-y (:simple-proc (<b>) <real> pure))

  (declare set-y! (:simple-proc (<b> <real>) <none> nonpure))

  (declare-method my-rep (:simple-proc (<a> <string>) <string> pure))

  (declare-method my-rep (:simple-proc (<b> <string>) <string> pure)))

