simulation.ss
#lang scheme/base
;;; PLT Scheme Simulation Collection
;;; Copyright (c) 2005-2008 M. Douglas Williams
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
;;; License as published by the Free Software Foundation; either
;;; version 2.1 of the License, or (at your option) any later version.
;;;
;;; This library 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
;;; Lesser General Public License for more details.
;;;
;;; You should have received a copy of the GNU Lesser General Public
;;; License along with this library; if not, write to the Free
;;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
;;; 02111-1307 USA.
;;;
;;; Version  Date      Description
;;; 3.0.0    06/24/08  Updated for V4.0.  (Doug Williams)

;;; Needed for syntax-case
(require (for-syntax scheme/base))

;;; Needed for process and resource classes
(require (lib "class.ss"))

;;; Needed for mutable lists.
(require scheme/mpair)

;;; Need the ordinary differential equation solver for continuous simulations
(require (planet "ode-initval.ss"
                 ("williams" "science.plt" 3 0)))

;;; There are many interdependencies among the parts of the simulation
;;; collection.  Therefore, I am building one big module and including the
;;; individual parts.
;;; At some point it would be good to restructure this.
(require (lib "include.ss"))
(include "private/event.ss")
(include "private/process.ss")
(include "private/process-class.ss")
(include "private/simulation-environment.ss")
(include "private/simulation-control.ss")
(include "private/statistics.ss")
(include "private/history.ss")
(include "private/variable.ss")
(include "private/set.ss")
(include "private/resource.ss")
(include "private/resource-class.ss")

;;; For now, I am not using contracts.  This should also be fixed.
(provide
 (all-defined-out))