diff --git a/gash/compat.scm b/gash/compat.scm index 4b1eb18..4e811e6 100644 --- a/gash/compat.scm +++ b/gash/compat.scm @@ -99,7 +99,8 @@ flush-all-ports file-port? input-port? - output-port?) + output-port? + thunk?) (define-macro (define-inlinable . rest) `(define ,@rest)) @@ -172,4 +173,9 @@ (let ((mes/dup dup)) (define* (guile/dup fd #:optional new) (if new (dup2 fd new) (mes/dup fd))) - (set! dup guile/dup))) + (set! dup guile/dup)) + + (define (thunk? obj) + (and (closure? obj) + (let ((args (cadr (core:cdr obj)))) + (or (null? args) (symbol? args))))))