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

module A where

a = [ "a"
    , "b"
    , "0"
    , "1"
    , "_"
    , "A"
    , "B"
    ]

---

(module
  (module_identifier)
  (where
    (function_declaration
      (variable_identifier)
      (function_body
        (list_expression
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string)))))))

=========================================
String Literals Symbols
=========================================

module A where

a = [ "!"
    , "#"
    , "$"
    , "%"
    , "&"
    , "⋆"
    , "+"
    , "."
    , "/"
    , "<"
    , "="
    , ">"
    , "?"
    , "^"
    , "|"
    , "-"
    , "~"
    , ":"
    , "\\"
    , "\""
    , "'"
    ]

---

(module
  (module_identifier)
  (where
    (function_declaration
      (variable_identifier)
      (function_body
        (list_expression
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string))
          (expression (string)))))))

=========================================
String Literals Special Symbols
=========================================

module A where

a = [ "("
    , ")"
    , ";"
    , "["
    , "]"
    , "`"
    , "{"
    , "}"
    ]

---

(module
  (module_identifier)
  (where
    (function_declaration
      (variable_identifier)
      (function_body
        (list_expression (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)))))))

=========================================
String Literals Character Escape
=========================================

module A where

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

---

(module
  (module_identifier)
  (where
    (function_declaration
      (variable_identifier)
      (function_body
        (list_expression (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)))))))

=========================================
String Literals Space
=========================================

module A where

a = " "

---

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

=========================================
String Literals Escape Ascii
=========================================

module A where

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

---

(module
  (module_identifier)
  (where
    (function_declaration
      (variable_identifier)
      (function_body
        (list_expression (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)))))))

=========================================
String Literals Escape Control Characters
=========================================

module A where

a = [ "\^A"
    , "\^Z"
    , "\^@"
    , "\^["
    , "\^]"
    , "\^\"
    , "\^^"
    , "\^_"
    ]

---

(module
  (module_identifier)
  (where
    (function_declaration
      (variable_identifier)
      (function_body
        (list_expression (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)) (expression (string)))))))

=========================================
String Literals Gap Characters
=========================================

module A where

a = "\n\tHaskell is wonderful.\n"

---

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

=========================================
Multi-Line Strings
=========================================

a = "Haskell is a \
    \wonderful \"language.\""

---

(module
  (function_declaration
    (variable_identifier)
    (function_body
      (string))))
