=========================================
Char Literals [a-zA-Z0-9_]
=========================================

module A where
a = 'a'
a = 'b'

a = '0'
a = '1'

a = '_'

a = 'A'
a = 'B'

a = ','

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))))

=========================================
Char Literals Symbols
=========================================

module A where
a = '!'
a = '#'
a = '$'
a = '%'
a = '&'
a = '⋆'
a = '+'
a = '.'
a = '/'
a = '<'
a = '='
a = '>'
a = '?'
a = '^'
a = '|'
a = '-'
a = '~'
a = ':'
a = '"'

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))))

=========================================
Char Literals Special Symbols
=========================================

module A where

a = '('
a = ')'
a = ';'
a = '['
a = ']'
a = '`'
a = '{'
a = '}'

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))))

=========================================
Char Literals Character Escape
=========================================

module A where

a = '\a'
a = '\b'
a = '\f'
a = '\n'
a = '\r'
a = '\t'
a = '\v'
a = '\\'
a = '\"'
a = '\''
a = '\&'

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))))

=========================================
Char Literals Space
=========================================

module A where

a = ' '

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))))

=========================================
Char Literals Escape Ascii
=========================================

module A where

a = '\NUL'
a = '\SOH'
a = '\STX'
a = '\ETX'
a = '\EOT'
a = '\ENQ'
a = '\ACK'
a = '\BEL'
a = '\BS'
a = '\HT'
a = '\LF'
a = '\VT'
a = '\FF'
a = '\CR'
a = '\SO'
a = '\SI'
a = '\DLE'
a = '\DC1'
a = '\DC2'
a = '\DC3'
a = '\DC4'
a = '\NAK'
a = '\SYN'
a = '\ETB'
a = '\CAN'
a = '\EM'
a = '\SUB'
a = '\ESC'
a = '\FS'
a = '\GS'
a = '\RS'
a = '\US'
a = '\SP'
a = '\DEL'

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))))

=========================================
Char Literals Escape Control Characters
=========================================

module A where

a = '\^A'
a = '\^Z'
a = '\^@'
a = '\^['
a = '\^]'
a = '\^\'
a = '\^^'
a = '\^_'

---

(module
  (module_identifier)
  (where
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))
    (function_declaration (variable_identifier) (function_body (char)))))
