;; -*-theme-*-

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

(define-interface (examples assoc-sgn)

  (import (standard-library core))

  (define-generic-proc gen-assoc)
  (define-generic-proc gen-assoc-set!)

  (define-param-signature :assoc (%key %value) ()
    (gen-assoc (this %key) (:maybe %value) pure)
    (gen-assoc-set! (this %key %value) <none> nonpure)))
