================================================================================
number: decimal
================================================================================

a = 0
a = 100_00_532
a = 55#
a = 55##

--------------------------------------------------------------------------------

(haskell
  (declarations
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))))

================================================================================
number: octal
================================================================================

a = 0o00
a = 0O77
a = 0O77##

--------------------------------------------------------------------------------

(haskell
  (declarations
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))))

================================================================================
number: hex
================================================================================

a = 0xA8
a = 0XEF84Fe23
a = 0xa_e_123_4
a = 0xa_e_123_4##
a = 0x0.1p-4
a = 0xFp3

--------------------------------------------------------------------------------

(haskell
  (declarations
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))))

================================================================================
number: float
================================================================================

a = 0.32847283472
a = 0.00e01
a = 0.00e01#
a = 0.00e+01
a = 0.99E-01
a = 00e01
a = 00e+01
a = 99E-01

--------------------------------------------------------------------------------

(haskell
  (declarations
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))
    (bind
      (variable)
      (match
        (literal
          (float))))))

================================================================================
number: binary
================================================================================

a = 0b01110
a = 0B10010
a = 0B10010##

--------------------------------------------------------------------------------

(haskell
  (declarations
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))
    (bind
      (variable)
      (match
        (literal
          (integer))))))
