(and (pair? x)
(number? (car x)) (number? (cdr x))))
+(define-public (fraction? x)
+ (and (pair? x)
+ (integer? (car x)) (integer? (cdr x))
+ (>= (car x) 0) (>= (cdr x) 0)))
+
(define-public (number-or-grob? x)
(or (ly:grob? x) (number? x)))
(define-public (grob-list? x)
(list? x))
+(define-public (number-list? x)
+ (and (list? x) (every number? x)))
+
(define-public (moment-pair? x)
(and (pair? x)
(ly:moment? (car x)) (ly:moment? (cdr x))))
(define-public (symbol-or-boolean? x)
(or (symbol? x) (boolean? x)))
+(define-public (void? x)
+ (unspecified? x))
+
;; moved list to end of lily.scm: then all type-predicates are
;; defined.
(define type-p-name-alist '())