... This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
... If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

(.using
 [library
  [lux (.except)
   [function
    [predicate (.only Predicate)]]
   [math
    ["[0]" number (.only)
     [/64
      ["n" natural]]]]
   [macro
    ["[0]" template]]]])

(every .public Channel
  Natural)

(template.with [<it> <name>]
  [(the .public <name>
     Channel
     (number.base_16 <it>))]

  [["0" minimum]
   ["F" maximum]

   ["A" percussion]])

(the .public tonal?
  (Predicate Channel)
  (|>> (n.= ..percussion)
       not))
