diff options
author | Andy Wingo <wingo@pobox.com> | 2014-02-07 15:05:55 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-02-07 15:05:55 +0100 |
commit | ae7f13be4bda70a6bc4a8478ce043df1a752ee6e (patch) | |
tree | 4d68cbc18989374bdbf33b8d46fa56b6f8164998 /module/srfi | |
parent | dc7a33fa871c42d0474602f3560d3ce350e1f1c3 (diff) | |
parent | ca5e0414e96886177d883a249edd957d2331db65 (diff) | |
download | guile-ae7f13be4bda70a6bc4a8478ce043df1a752ee6e.tar.gz |
Merge commit 'ca5e0414e96886177d883a249edd957d2331db65'
Conflicts:
module/language/tree-il/primitives.scm
Diffstat (limited to 'module/srfi')
-rw-r--r-- | module/srfi/srfi-111.scm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/module/srfi/srfi-111.scm b/module/srfi/srfi-111.scm new file mode 100644 index 000000000..3d3cd896b --- /dev/null +++ b/module/srfi/srfi-111.scm @@ -0,0 +1,37 @@ +;;; srfi-111.scm -- SRFI 111 Boxes + +;; Copyright (C) 2014 Free Software Foundation, Inc. +;; +;; 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 3 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +(define-module (srfi srfi-111) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) + #:export (box box? unbox set-box!)) + +(cond-expand-provide (current-module) '(srfi-111)) + +(define-record-type <box> + (box value) + box? + (value unbox set-box!)) + +(set-record-type-printer! <box> + (lambda (box port) + (display "#<box " port) + (display (number->string (object-address box) 16) port) + (display " value: ") + (write (unbox box) port) + (display ">" port))) |