;; -*-theme-d-*-

;; Copyright (C) 2025 Tommi Höynälänmaa

;; This file is part of Theme-D-Intr.

;; You can redistribute and/or modify this file under the terms of the
;; GNU Lesser General Public License as published by the Free Software
;; Foundation, either version 3 of the License, or (at your option) any
;; later version.

;; This file is distributed in the hope that it will be useful, but
;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.

;; You should have received a copy of the GNU Lesser General Public License
;; along with this program. If not, see https://www.gnu.org/licenses/.

(define-interface (intr-gtk4-examples calc2 utils)

  (import (standard-library core))

  (declare-mutable gl-l-s-debug-cat (:uniform-list <symbol>))
  
  (declare-simple-method dwln (<symbol> (rest <object>)) <none> nonpure)

  (declare-simple-method dirname (<string>) <string> pure)

  (declare-simple-method get-load-compiled-path
    () (:uniform-list <string>) pure)

  (declare-simple-method set-load-compiled-path!
    ((:uniform-list <string>)) <none> nonpure)

  (declare-simple-method get-plain-file-tree (<string>) <object> nonpure)

  (declare raise2 (:procedure (<rte-exception-kind>
                               (rest (:pair <symbol> <object>)))
                              <none> (pure never-returns)))

  (declare-simple-method current-filename () (:alt-maybe <string>) pure)

  (declare-simple-method current-dirname () (:alt-maybe <string>) pure))


