(module srfi-195 () (import scheme) (import (chicken module)) (import (chicken type)) (import (chicken platform)) (import (only (box values) make-box box? box-ref box-set! box-arity box-value-ref box-value-set!)) (reexport (only (box values) box? box-arity) (rename (box values) (make-box box) (box-ref unbox) (box-set! set-box!) (box-value-ref unbox-value) (box-value-set! set-box-value!))) #; ;FIXME wtf? it includes what? (include-relative "box.values.types") (define-type boxv (struct boxv)) (: box (#!rest -> boxv)) ;values <- (: box? (* -> boolean : boxv)) (: unbox (boxv -> . *)) ;-> values (: set-box! (boxv #!rest -> void)) ;values <- (: box-arity (boxv -> fixnum)) (: unbox-value (boxv fixnum -> *)) (: set-box-value! (boxv fixnum * -> void)) ;;; (register-feature! 'srfi-195) ) ;module srfi-195