;;; SPDX-License-Identifier: LGPL-3.0-or-later
;;; SPDX-FileCopyrightText: Copyright © 2021 Tony Garnock-Jones <tonyg@leastfixedpoint.com>

#lang racket/base

(provide (except-out (all-from-out "actor.rkt") current-turn)
         (all-from-out "entity-ref.rkt")
         (all-from-out "syntax.rkt")
         (all-from-out preserves)
         (all-from-out preserves-schema)

         assertion-struct
         message-struct

         :pattern)

(require (except-in "actor.rkt" actor-system))
(require "entity-ref.rkt")
(require "syntax.rkt")
(require preserves)
(require preserves-schema)

;; Thin veneers over `struct` for declaring intent.
(define-syntax-rule (assertion-struct item ...) (struct item ... #:prefab))
(define-syntax-rule (message-struct item ...) (struct item ... #:prefab))

(require (only-in "pattern.rkt" :pattern))

(module reader syntax/module-reader syndicate/lang)
