+(define-public (key? x)
+ (or (symbol? x) (index? x)))
+
+(define-public (key-list? x)
+ (and (list? x) (every key? x)))
+
+(define-public (key-list-or-music? x)
+ (if (list? x)
+ (every key? x)
+ (ly:music? x)))
+
+(define-public (key-list-or-symbol? x)
+ (if (list? x)
+ (every key? x)
+ (symbol? x)))
+
+(define-public (symbol-list? x)
+ (and (list? x) (every symbol? x)))
+
+(define-public (symbol-list-or-music? x)
+ (if (list? x)
+ (every symbol? x)
+ (ly:music? x)))
+