From 0e86e3eca105d0202ecb2508b88e75cbadaefc19 Mon Sep 17 00:00:00 2001 From: Greg Pfeil Date: Sat, 10 Sep 2011 16:22:08 -0600 Subject: [PATCH] Expand the allowed continuation values and explain why message arguments default to NIL. --- src/kell-calculus/processes.lisp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/kell-calculus/processes.lisp b/src/kell-calculus/processes.lisp index 33c1d19..188ce7c 100644 --- a/src/kell-calculus/processes.lisp +++ b/src/kell-calculus/processes.lisp @@ -33,8 +33,14 @@ (defclass message (process) ((name :initarg :name :accessor name :type name) (argument :initarg :argument :initform nil :type generic-process - :accessor argument) - (continuation :initarg :continuation :initform null :type (or process symbol) + :accessor argument + :documentation + "This defaults to nil rather than null so that we can distinguish + when the argument was omitted, since in some pattern languages an + omitted argument means 'match anything' rather than 'match + null'.") + (continuation :initarg :continuation :initform null + :type (or generic-process symbol) :accessor continuation))) (defmethod print-object ((obj message) stream) @@ -57,7 +63,7 @@ (defclass kell (process) ((name :initarg :name :accessor name :type name) (state :initarg :state :initform null :type generic-process :accessor state) - (continuation :initarg :continuation :initform null :type process + (continuation :initarg :continuation :initform null :type generic-process :accessor continuation) ;; implementation details (lock :reader lock)