words -package:hedgehog -package:dimensional -package:streamly-core -package:termonad package:hledger

words breaks a string up into a list of words, which were delimited by white space (as defined by isSpace). This function trims any white spaces at the beginning and at the end.
>>> words "Lorem ipsum\ndolor"
["Lorem","ipsum","dolor"]

>>> words " foo bar "
["foo","bar"]
Quote-aware version of words - don't split on spaces which are inside quotes. NB correctly handles "a'b" but not "'a'". Can raise an error if parsing fails.
Quote-and-prefix-aware version of words - don't split on spaces which are inside quotes, including quotes which may have one of the specified prefixes in front, and maybe an additional not: prefix in front of that.
unwords joins words with separating spaces (U+0020 SPACE).
>>> unwords ["Lorem", "ipsum", "dolor"]
"Lorem ipsum dolor"
unwords is neither left nor right inverse of words:
>>> words (unwords [" "])
[]

>>> unwords (words "foo\nbar")
"foo bar"
Quote-aware version of unwords - single-quote strings which contain whitespace