From 6e79ef8369f244f7995655e9d7b795d73fd66a17 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Tue, 4 Jun 2019 12:47:03 -0700 Subject: [PATCH] coerce booleans --- quad/quad/qexpr.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/quad/quad/qexpr.rkt b/quad/quad/qexpr.rkt index baf4d669..5dbcd15c 100644 --- a/quad/quad/qexpr.rkt +++ b/quad/quad/qexpr.rkt @@ -84,7 +84,11 @@ (match-define (list k v) kv) ;; coerce number strings to actual numbers ;; this misbehaves on a list index like "1." which becomes 1.0 - (hash-set! mheq k (or (string->number v) (string-downcase v)))) + (hash-set! mheq k (cond + [(equal? v "true") #true] + [(equal? v "false") #false] + [(string->number v)] + [else (string-downcase v)]))) (q #:attrs mheq #:elems (map loop elems))] [(list (? qexpr? elems) ...) (q #:elems (map loop elems))])]