;; -*-theme-*-

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

(define-interface (examples sequence-sgn)

  (import (standard-library core))

  (define-virtual-gen-proc sequence-ref)
  (define-virtual-gen-proc sequence-length)
  (define-virtual-gen-proc sequence-map)

  (define-param-signature :sequence (%element) ()
    (sequence-ref (this <integer>) %element pure)
    (sequence-length (this) <integer> pure)
    (sequence-map ((:procedure (%element) %element pure) this) this
		  pure)))
