diff --git a/txexpr/base.rkt b/txexpr/base.rkt index fd2559c..80ed2a8 100644 --- a/txexpr/base.rkt +++ b/txexpr/base.rkt @@ -261,8 +261,7 @@ x)))) ;; function to split tag out of txexpr -(define deleted-signal #f) -(define+provide+safe (splitf-txexpr tx pred [proc (λ (x) deleted-signal)]) +(define+provide+safe (splitf-txexpr tx pred [proc (λ (x) #f)]) ((txexpr? procedure?) (procedure?) . ->* . (values txexpr? txexpr-elements?)) (unless (txexpr? tx) (raise-argument-error 'splitf-txexpr "txexpr?" tx)) @@ -273,8 +272,7 @@ (set! matches (cons x matches)) (proc x)] [(? txexpr?) (let-values ([(tag attrs elements) (txexpr->values x)]) - (txexpr-unsafe tag attrs (filter-not (λ (e) (eq? e deleted-signal)) - (map extract! elements))))] + (txexpr-unsafe tag attrs (filter values (map extract! elements))))] [_ x])) (define tx-extracted (extract! tx)) ;; do this first to fill matches (values tx-extracted (reverse matches)))