Update runtime files.
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index f15cd96..a540704 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.2.  Last change: 2020 Sep 25
+*autocmd.txt*   For Vim version 8.2.  Last change: 2020 Oct 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -278,7 +278,7 @@
 |BufWinLeave|		before a buffer is removed from a window
 
 |BufUnload|		before unloading a buffer
-|BufHidden|		just after a buffer has become hidden
+|BufHidden|		just before a buffer becomes hidden
 |BufNew|		just after creating a new buffer
 
 |SwapExists|		detected an existing swap file
@@ -883,7 +883,7 @@
 				string.
 							*InsertLeavePre*
 InsertLeavePre			Just before leaving Insert mode.  Also when
-				using CTRL-O |i_CTRL-O|.  Be caseful not to
+				using CTRL-O |i_CTRL-O|.  Be careful not to
 				change mode or use `:normal`, it will likely
 				cause trouble.
 							*InsertLeave*
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 18b0232..6e5cfc8 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 8.2.  Last change: 2020 Sep 03
+*channel.txt*      For Vim version 8.2.  Last change: 2020 Oct 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -965,6 +965,10 @@
 		"fail", because a fork happens before the failure can be
 		detected.
 
+		If in Vim9 script a variable is declared with type "job" but
+		never assigned to, passing that variable to job_status()
+		returns "fail".
+
 		If an exit callback was set with the "exit_cb" option and the
 		job is now detected to be "dead" the callback will be invoked.
 
@@ -1288,7 +1292,7 @@
 	  " Send the text to a shell with Enter appended.
 	  call ch_sendraw(g:shell_job, a:text .. "\n")
 	endfunc
-		
+
 	" Function handling output from the shell: Added above the prompt.
 	func GotOutput(channel, msg)
 	  call append(line("$") - 1, "- " . a:msg)
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 9b9adf6..ab2219d 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.2.  Last change: 2020 Aug 17
+*editing.txt*   For Vim version 8.2.  Last change: 2020 Oct 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -73,10 +73,14 @@
 			ways: Column, Line, Word, Character and Byte.  If the
 			number of Characters and Bytes is the same then the
 			Character position is omitted.
+
 			If there are characters in the line that take more
 			than one position on the screen (<Tab> or special
-			character), both the "real" column and the screen
-			column are shown, separated with a dash.
+			character), or characters using more than one byte per
+			column (characters above 0x7F when 'encoding' is
+			utf-8), both the byte column and the screen column are
+			shown, separated by a dash.
+
 			Also see the 'ruler' option and the |wordcount()|
 			function.
 
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index d58b02b..b757e5f 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2020 Oct 05
+*eval.txt*	For Vim version 8.2.  Last change: 2020 Oct 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -120,7 +120,7 @@
 
 						*TRUE* *FALSE* *Boolean*
 For boolean operators Numbers are used.  Zero is FALSE, non-zero is TRUE.
-You can also use |v:false| and |v:true|.  In Vim9 script |false| and |true|. 
+You can also use |v:false| and |v:true|.  In Vim9 script |false| and |true|.
 When TRUE is returned from a function it is the Number one, FALSE is the
 number zero.
 
@@ -2746,7 +2746,7 @@
 				none	change an existing property type
 prop_type_delete({name} [, {props}])
 				none	delete a property type
-prop_type_get([{name} [, {props}]])
+prop_type_get({name} [, {props}])
 				Dict	get property type values
 prop_type_list([{props}])	List	get list of property types
 pum_getpos()			Dict	position and size of pum if visible
@@ -3126,7 +3126,7 @@
 		error message is given. Example: >
 			:let failed = appendbufline(13, 0, "# THE START")
 <
-<		Can also be used as a |method| after a List, the base is
+		Can also be used as a |method| after a List, the base is
 		passed as the second argument: >
 			mylist->appendbufline(buf, lnum)
 
@@ -7972,8 +7972,8 @@
 
 
 prompt_getprompt({buf})					*prompt_getprompt()*
-		Returns the effective prompt text for buffer {buf}. {buf} can
-		be a buffer name or number. |prompt-buffer|.
+		Returns the effective prompt text for buffer {buf}.  {buf} can
+		be a buffer name or number.  See |prompt-buffer|.
 
 		If the buffer doesn't exist or isn't a prompt buffer, an empty
 		string is returned.
@@ -10709,8 +10709,8 @@
 		detected from the response to |t_RV| request.  See
 		|v:termresponse| for the response itself.  If |v:termresponse|
 		is empty most values here will be 'u' for unknown.
-		   cursor_style		wether sending |t_RS| works  **
-		   cursor_blink_mode	wether sending |t_RC| works  **
+		   cursor_style		whether sending |t_RS| works  **
+		   cursor_blink_mode	whether sending |t_RC| works  **
 		   underline_rgb	whether |t_8u| works **
 		   mouse		mouse type supported
 
@@ -11366,7 +11366,8 @@
 			curswant	column for vertical movement
 			topline		first line in the window
 			topfill		filler lines, only in diff mode
-			leftcol		first column displayed
+			leftcol		first column displayed; only used when
+					'wrap' is off
 			skipcol		columns skipped
 		Note that no option values are saved.
 
@@ -12140,8 +12141,9 @@
 
 Note that when you make a mistake and call a function that is supposed to be
 defined in an autoload script, but the script doesn't actually define the
-function, the script will be sourced every time you try to call the function.
-And you will get an error message every time.
+function, you will get an error message for the missing function.  If you fix
+the autoload script it won't be automatically loaded again.  Either restart
+Vim or manually source the script.
 
 Also note that if you have two script files, and one calls a function in the
 other and vice versa, before the used function is defined, it won't work.
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index 6420856..f0de21a 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 8.2.  Last change: 2019 Dec 07
+*if_mzsch.txt*  For Vim version 8.2.  Last change: 2020 Oct 14
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
@@ -43,7 +43,7 @@
 {script}
 {endmarker}
 			Execute inlined MzScheme script {script}.
-			Note: This command doesn't work if the MzScheme
+			Note: This command doesn't work when the MzScheme
 			feature wasn't compiled in.  To avoid errors, see
 			|script-here|.
 
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index b202a93..d70b3e6 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.2.  Last change: 2020 Sep 19
+*insert.txt*    For Vim version 8.2.  Last change: 2020 Oct 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -312,6 +312,7 @@
 the buffer to a file, the <NL> character is translated into <Nul>.  The <NL>
 character is written at the end of each line.  Thus if you want to insert a
 <NL> character in a file you will have to make a line break.
+Also see 'fileformat'.
 
 						*i_CTRL-X* *insert_expand*
 CTRL-X enters a sub-mode where several commands can be used.  Most of these
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 38282e7..d6215a4 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 8.2.  Last change: 2020 Aug 24
+*motion.txt*    For Vim version 8.2.  Last change: 2020 Oct 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -190,11 +190,14 @@
 
 							*^*
 ^			To the first non-blank character of the line.
-			|exclusive| motion.
+			|exclusive| motion.  Any count is ignored.
 
 							*$* *<End>* *<kEnd>*
 $  or <End>		To the end of the line.  When a count is given also go
-			[count - 1] lines downward. |inclusive| motion.
+			[count - 1] lines downward, or as far is possible.
+			|inclusive| motion.  If a count of 2 of larger is
+			given and the cursor is on the last line, that is an
+			error an the cursor doesn't move.
 			In Visual mode the cursor goes to just after the last
 			character in the line.
 			When 'virtualedit' is active, "$" may move the cursor
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index d70df81..2f9fe1e 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -154,4 +154,4 @@
    v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
 
 ==============================================================================
-vim:tw=78:ts=8:noet:ft=help:fdm=marker
+vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker
diff --git a/runtime/doc/popup.txt b/runtime/doc/popup.txt
index 0e28fdd..87baee6 100644
--- a/runtime/doc/popup.txt
+++ b/runtime/doc/popup.txt
@@ -1,4 +1,4 @@
-*popup.txt*  For Vim version 8.2.  Last change: 2020 Sep 28
+*popup.txt*  For Vim version 8.2.  Last change: 2020 Oct 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -314,6 +314,7 @@
 		    <Space> <Enter>	accept current selection
 		    x Esc CTRL-C	cancel the menu
 		Other keys are ignored.
+		Always returns |v:true|.
 
 		A match is set on that line to highlight it, see
 		|popup_menu()|.
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 5a2ed2e..7512d0c 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 8.2.  Last change: 2020 Aug 10
+*tabpage.txt*   For Vim version 8.2.  Last change: 2020 Oct 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -195,8 +195,8 @@
 		    :+2tabnext	" go to the two next tab page
 		    :1tabnext	" go to the first tab page
 		    :$tabnext	" go to the last tab page
-		    :tabnext #  " go to the last accessed tab page
 		    :tabnext $	" as above
+		    :tabnext #  " go to the last accessed tab page
 		    :tabnext -	" go to the previous tab page
 		    :tabnext -1	" as above
 		    :tabnext +	" go to the next tab page
@@ -225,7 +225,7 @@
 							*:tabl* *:tablast*
 :tabl[ast]	Go to the last tab page.
 
-					    *g<Tab>* *CTRL-W_g<Tab>* *<C-Tab>*
+					*g<Tab>* *CTRL-W_g<Tab>* *<C-Tab>*
 g<Tab>		Go to the last accessed tab page.
 
 Other commands:
@@ -259,7 +259,7 @@
 		    :tabmove	" move the tab page to the last
 		    :$tabmove	" as above
 		    :tabmove $	" as above
-		    :tabmove #  " move the tab page after the last accessed
+		    :tabmove #	" move the tab page after the last accessed
 				" tab page
 
 :tabm[ove] +[N]
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 5fd41c5..7f07b9f 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4378,7 +4378,6 @@
 E539	options.txt	/*E539*
 E54	pattern.txt	/*E54*
 E540	options.txt	/*E540*
-E541	options.txt	/*E541*
 E542	options.txt	/*E542*
 E543	options.txt	/*E543*
 E544	options.txt	/*E544*
@@ -4932,6 +4931,7 @@
 InsertCharPre	autocmd.txt	/*InsertCharPre*
 InsertEnter	autocmd.txt	/*InsertEnter*
 InsertLeave	autocmd.txt	/*InsertLeave*
+InsertLeavePre	autocmd.txt	/*InsertLeavePre*
 Integer	eval.txt	/*Integer*
 J	change.txt	/*J*
 Japanese	mbyte.txt	/*Japanese*
diff --git a/runtime/doc/textprop.txt b/runtime/doc/textprop.txt
index ac6d12a..169520c 100644
--- a/runtime/doc/textprop.txt
+++ b/runtime/doc/textprop.txt
@@ -1,4 +1,4 @@
-*textprop.txt*  For Vim version 8.2.  Last change: 2020 Mar 05
+*textprop.txt*  For Vim version 8.2.  Last change: 2020 Oct 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -101,7 +101,7 @@
 prop_type_add({name}, {props})		define a new property type
 prop_type_change({name}, {props})	change an existing property type
 prop_type_delete({name} [, {props}])	delete a property type
-prop_type_get([{name} [, {props}]])	get property type values
+prop_type_get({name} [, {props}])	get property type values
 prop_type_list([{props}])		get list of property types
 
 
@@ -291,7 +291,7 @@
 		Can also be used as a |method|: >
 			GetPropName()->prop_type_delete()
 
-prop_type_get([{name} [, {props}]])			*prop_type_get()*
+prop_type_get({name} [, {props}])			*prop_type_get()*
 		Returns the properties of property type {name}.  This is a
 		dictionary with the same fields as was given to
 		prop_type_add().
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 9795a0f..48a7946 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2020 Oct 10
+*todo.txt*      For Vim version 8.2.  Last change: 2020 Oct 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,29 +38,13 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Sign highlight in signcolumn disappears if there is line highlighting.
+
 Making everything work:
-- If a function is defined in a block it may need to keep the block-locals,
-  like a compiled closure.
-- Fix memory leaks in test_vim9_assign, remove "if 0"
-- Fix memory leaks in test_vim9_script
+- Test all  command modifiers.
+- Check many more builtin function arguments at compile time.
 - Closure arguments should be more strict, like any function call?
-- Remove v:disallow_let
-- Recognize call to assert_fails() and execute it in the function context?
-  Won't work if the command itself fails, not an expression failure:
-	assert_fails("unknown", "E99:")
-  Use try/catch is complicated:
-    let did_catch = false
-    try
-	unknown
-    catch
-	assert_caught('E99:')
-	did_catch = true
-    endtry
-    assert_true('did_catch')
-  Add a new command perhaps:
-    assertfail
-       unknown
-    endassertfail E99:.*unknown
+- Invoke user command in a :def function
 - Make map() give an error if the resulting type is wrong.
   Add mapnew() or mapcopy() to create a new List/Dict for the result, which
   can have a different value type.
@@ -124,12 +108,12 @@
 - Make "++nr" work.
 - Make closures work:
   - Create closure in a loop.  Need to make a list of them.
+  - nested closure only uses one context, not all (#7150)
 - expandcmd() with `=expr` in filename uses legacy expression.
 - eval_expr() in ex_cexpr()
 - eval_expr() call in dbg_parsearg() and debuggy_find()
 - has() is compiled as a constant, but some checks are dynamic.
   Check for dynamic values, such as "gui_running".
-- Implement command modifiers, such as "silent". (#6530)
 New syntax and functionality:
 Improve error checking:
 - "echo Func()" is an error if Func() does not return anything.
@@ -302,6 +286,8 @@
 
 Patch for blockwise paste reporting changes: #6660.
 
+Missing filetype test for bashrc, PKGBUILD, etc.
+
 Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
 changes.
 
@@ -351,8 +337,6 @@
 Using "au!" after "filetype on" is a bit slow.  Can the matching of
 autocommands be made faster?  (#7056)
 
-Valgrind warns for uninitialized values in f_term_dumpwrite().
-
 Add the <=> (spaceship) operator and "cond ?< expr ?= expr ?> expr"
     replace this:
 	let left = GetLeftFunc()
@@ -455,7 +439,6 @@
 May 20)
 Also put :argadd commands at the start for all buffers, so that their order
 remains equal?  Then %argdel to clean it up.  Do try this with 'hidden' set.
-Also #4994: window-local options not always restored, related to using :badd.
 Also #5326: netrw buffers are not restored.
 
 Alternate file is not set in the session file.  Use setwintabvar("@#") ?
@@ -595,10 +578,6 @@
 Thau, 2013 Nov 20, 2014 Jan 29, 2014 Jan 31)
 Added tests (James McCoy, 2016 Aug 3, #958).  Still needs more work.
 
-":2resize +10" uses size of the current window, adds 10 and applies it to
-window 2.  User expects 10 to be added to size of window 2. (Daniel Steinberg,
-#5443)
-
 Would be nice to set tab-local values for 'diffexpr' and 'diffopt'.  Use
 t:diffexpr_option t:diffopt_option? (#4782)
 
@@ -3858,10 +3837,6 @@
     on the status line (caused by 'winheight').  Select window on button up,
     instead of on button down.
 8   Dragging the status line doesn't scroll but redraw.
-9   Evaluating 'statusline' in build_stl_str_hl() does not properly check for
-    reaching the end of the available buffer.
-    Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
-    May 14)
 8   When performing incremental search, should abort searching as soon as a
     character is typed.
 8   When the value of $MAKE contains a path, configure can't handle this.
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index 542b101..b1c6fa7 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 8.2.  Last change: 2019 Dec 07
+*undo.txt*      For Vim version 8.2.  Last change: 2020 Oct 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -392,7 +392,7 @@
 						*redo-register*
 If you want to get back more than one part of deleted text, you can use a
 special feature of the repeat command ".".  It will increase the number of the
-register used.  So if you first do ""1P", the following "." will result in a
+register used.  So if you first do '"1P', the following "." will result in a
 '"2P'.  Repeating this will result in all numbered registers being inserted.
 
 Example:	If you deleted text with 'dd....' it can be restored with
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 430c365..d267631 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 8.2.  Last change: 2020 Jul 08
+*usr_11.txt*	For Vim version 8.2.  Last change: 2020 Oct 25
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -294,7 +294,7 @@
 'shortmess' option.  But it's very unusual that you need this.
 
 For remarks about encryption and the swap file, see |:recover-crypt|.
-For programatic access to the swap file, see |swapinfo()|.
+For programmatic access to the swap file, see |swapinfo()|.
 
 ==============================================================================
 *11.4*	Further reading
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 1ad90f2..ef28e08 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 8.2.  Last change: 2020 Aug 15
+*version7.txt*  For Vim version 8.2.  Last change: 2020 Oct 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -10260,7 +10260,7 @@
 	Brabandt)
 
 Other:
-	Lua interface now also uses userdata binded to Vim structures. (Taro
+	Lua interface now also uses userdata bound to Vim structures. (Taro
 	Muraoka, Luis Carvalho)
 
 	glob() and autocommand patterns used to work with the undocumented
diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt
index 431b9cd..8f38d9b 100644
--- a/runtime/doc/version8.txt
+++ b/runtime/doc/version8.txt
@@ -1,4 +1,4 @@
-*version8.txt*  For Vim version 8.2.  Last change: 2020 Aug 15
+*version8.txt*  For Vim version 8.2.  Last change: 2020 Oct 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -47698,7 +47698,7 @@
 
 Patch 8.2.1064
 Problem:    Vim9: no line break allowed before comparators.
-Solution:   Check for comperator after line break.
+Solution:   Check for comparator after line break.
 Files:      src/eval.c, src/testdir/test_vim9_expr.vim
 
 Patch 8.2.1065
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index fdbcefc..8551373 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2020 Oct 05
+*vim9.txt*	For Vim version 8.2.  Last change: 2020 Oct 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -176,8 +176,8 @@
 for clarity.
 
 In all cases the function must be defined before used.  That is when it is
-called, when `:defcompile` causes the it to be compiled, or when code that
-calls it is being compiled (to figure out the return type).
+called, when `:defcompile` causes it to be compiled, or when code that calls
+it is being compiled (to figure out the return type).
 
 The result is that functions and variables without a namespace can usually be
 found in the script, either defined there or imported.  Global functions and
@@ -901,7 +901,7 @@
   location of the script file itself.  This is useful to split up a large
   plugin into several files.
 - An absolute path, starting with "/" on Unix or "D:/" on MS-Windows.  This
-  will be rarely used.
+  will rarely be used.
 - A path not being relative or absolute.  This will be found in the
   "import" subdirectories of 'runtimepath' entries.  The name will usually be
   longer and unique, to avoid loading the wrong file.
@@ -1160,8 +1160,8 @@
 condition would accept a string, convert it to a number and check if the
 number is non-zero.  This is unexpected and often leads to mistakes, since
 text not starting with a number would be converted to zero, which is
-considered false.  Thus a string would not give an error and be considered
-false if it doesn't start with a number.  That is confusing.
+considered false.  Thus using a string for a condition would often not give an
+error and be considered false.  That is confusing.
 
 In Vim9 type checking is more strict to avoid mistakes.  Where a condition is
 used, e.g. with the `:if` command and the `||` operator, only boolean-like
@@ -1169,7 +1169,7 @@
 	true:  `true`, `v:true`, `1`, `0 < 9`
 	false: `false`, `v:false`, `0`, `0 > 9`
 Note that the number zero is false and the number one is true.  This is more
-persmissive than most other languages.  It was done because many builtin
+permissive than most other languages.  It was done because many builtin
 functions return these values.
 
 If you have any type of value and want to use it as a boolean, use the `!!`