shithub: sl

Download patch

ref: 3410159c5c1b7499adffe302f57b7b26853d2009
parent: a49694281a0c55baa5d5772d07d60388d2598101
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Thu May 8 20:52:19 EDT 2025

table docs fixup

--- a/boot/sl.boot
+++ b/boot/sl.boot
@@ -99,8 +99,8 @@
 car (cdr (car (car lst))))."  unwind-protect "Evaluate `expr` first, then `finally`, regardless of whether\nevaluating the former resulted in any exception thrown or not.\n\nIf an exception has been thrown, it will be raised _after_ evaluating\n`finally`, else the result of `expr` is returned.\n\nExamples:\n\n    (unwind-protect (begin (print \"a\")     (newline)\n                           (print (/ 1 0)) (newline) ; an error here\n                           (print \"b\")     (newline)\n                    (begin (print \"c\")     (newline))))\n    → \"a\"\n      \"c\"\n      /: division by zero"  cos "Return the cosine of `r`, where `r` is given in radians."  *io-in* "Current (default) input IO stream.\n\nFunctions may use `*io-in*` for input, which then can be redirected\nfrom a different IO using either `with-input-from` or (a more general)\n`with-bindings`."  every "Return `T` if the predicate is true for _every_ element of the list,\n`NIL` otherwise.\n\nExample:\n\n   (every odd? '(1 3 5 7))                        → T\n   (every (λ (s) (length> s 1)) '(\"ab\" \"cd\" \"e\")) → NIL"  atom? "Return `T` if `v` is a _not_ a cons cell, `NIL` otherwise.  This is\nthe opposite of `cons?`.\n\nThe term \"atom\" comes from the idea of being indivisible.\n\nExamples:\n\n    (atom? \"a\")  → T\n    (atom? NIL)  → T\n    (atom? '(1)) → NIL"  p64 "Construct a 64-bit abstract pointer value."  str-utf8? "Return `T` if `s` is a valid UTF-8 string, `NIL` otherwise.\n\nExamples:\n\n    (str-utf8? \"привет\")     → T\n    (str-utf8? \"при\\xffвет\") → NIL"  apply "Return the result of applying a function `f` to a list of arguments.\n\nThe last argument must always be a list which gets spliced as\narguments to the function.\n\nExamples:\n\n    (apply + 1 2 '(3 4 5))   → 15\n    (apply vec '(1 2 3))     → #(3 4 5)\n    (apply arr 'u8 '(3 4 5)) → #vu8(3 4 5)"  cddr "Shorthand for (cdr (cdr lst))."  not "Return `T` if `v` is `NIL`, `T` otherwise."  (doc
   group sys) "OS-specific functions."  print "Print the arguments to *io-out* with `*print-readably*` set to `T`.\n\nMultiple arguments are separated with a single `#\\space`.\n\nExamples:\n\n    (print 1 2 \"abc\") → 1 2 \"abc\""  cdar "Shorthand for (cdr (car lst))."  cdaar "Shorthand for (cdr (car (car lst)))."  iota "Return a list of generated indices.\n\nThe sequence of numbers generated will contain the elements\n\n    (start start+step … start+(count-1)*step)\n\nExamples:\n\n    (iota 4)        → (0 1 2 3)\n    (iota 4 6)      → (6 7 8 9)\n    (iota 4 6 -0.5) → (6 5.5 5.0 4.5)"  caaddr "Shorthand for (car (car (cdr (cdr lst))))."  getprop "Return a property value associated with the symbol or `def` if\nmissing.\n\nIf the default value is not supplied and the property is missing,\nan exception will be thrown."  (doc
   group time) "Measuring, manipulating and displaying time."  * "Return product of the arguments or `1` when none specified."  putprop "Associate a property value with the symbol."  *io-out* "Current (default) output IO stream.\n\nFunctions may use `*io-out*` for output, which then can be redirected\nto a different IO using either `with-output-to` or (a more general)\n`with-bindings`."  rand-f32 "Return a random 32-bit floating pointer number on [0.0, 1.0] interval."  repl "Run interactive prompt in a loop, reading and evaluating the\nexpressions entered by the user and printing the results."  (doc
-(/ 1 0)) (newline) ; an error here\n                           (print \"b\")     (newline)\n                    (begin (print \"c\")     (newline))))\n    → \"a\"\n      \"c\"\n      /: division by zero"  cos "Return the cosine of `r`, where `r` is given in radians."  *io-in* "Current (default) input IO stream.\n\nFunctions may use `*io-in*` for input, which then can be redirected\nfrom a different IO using either `with-input-from` or (a more general)\n`with-bindings`."  every "Return `T` if the predicate is true for _every_ element of the list,\n`NIL` otherwise.\n\nExample:\n\n   (every odd? '(1 3 5 7))                        → T\n   (every (λ (s) (length> s 1)) '(\"ab\" \"cd\" \"e\")) → NIL"  atom? "Return `T` if `v` is a _not_ a cons cell, `NIL` otherwise.  This is\nthe opposite of `cons?`.\n\nThe term \"atom\" comes from the idea of being indivisible.\n\nExamples:\n\n    (atom? \"a\")  → T\n    (atom? NIL)  → T\n    (atom? '(1)) → NIL"  p64 "Construct a 64-bit abstract pointer value."  str-utf8? "Return `T` if `s` is a valid UTF-8 string, `NIL` otherwise.\n\nExamples:\n\n    (str-utf8? \"привет\")     → T\n    (str-utf8? \"при\\xffвет\") → NIL"  apply "Return the result of applying a function `f` to a list of arguments.\n\nThe last argument must always be a list which gets spliced as\narguments to the function.\n\nExamples:\n\n    (apply + 1 2 '(3 4 5))   → 15\n    (apply vec '(1 2 3))     → #(3 4 5)\n    (apply arr 'u8 '(3 4 5)) → #vu8(3 4 5)"  cddr "Shorthand for (cdr (cdr lst))."  not "Return `T` if `v` is `NIL`, `T` otherwise."  (doc
-  group sys) "OS-specific functions."  print "Print the arguments to *io-out* with `*print-readably*` set to `T`.\n\nMultiple arguments are separated with a single `#\\space`.\n\nExamples:\n\n    (print 1 2 \"abc\") → 1 2 \"abc\""  cdar "Shorthand for (cdr (car lst))."  cdaar "Shorthand for (cdr (car (car lst)))."  iota "Return a list of generated indices.\n\nThe sequence of numbers generated will contain the elements\n\n    (start start+step … start+(count-1)*step)\n\nExamples:\n\n    (iota 4)        → (0 1 2 3)\n    (iota 4 6)      → (6 7 8 9)\n    (iota 4 6 -0.5) → (6 5.5 5.0 4.5)"  caaddr "Shorthand for (car (car (cdr (cdr lst))))."  getprop "Return a property value associated with the symbol or `def` if\nmissing.\n\nIf the default value is not supplied and the property is missing,\nan exception will be thrown."  (doc
+(/ 1 0)) (newline) ; an error here\n                           (print \"b\")     (newline)\n                    (begin (print \"c\")     (newline))))\n    → \"a\"\n      \"c\"\n      /: division by zero"  cos "Return the cosine of `r`, where `r` is given in radians."  *io-in* "Current (default) input IO stream.\n\nFunctions may use `*io-in*` for input, which then can be redirected\nfrom a different IO using either `with-input-from` or (a more general)\n`with-bindings`."  every "Return `T` if the predicate is true for _every_ element of the list,\n`NIL` otherwise.\n\nExample:\n\n   (every odd? '(1 3 5 7))                        → T\n   (every (λ (s) (length> s 1)) '(\"ab\" \"cd\" \"e\")) → NIL"  atom? "Return `T` if `v` is a _not_ a cons cell, `NIL` otherwise.  This is\nthe opposite of `cons?`.\n\nThe term \"atom\" comes from the idea of being indivisible.\n\nExamples:\n\n    (atom? \"a\")  → T\n    (atom? NIL)  → T\n    (atom? '(1)) → NIL"  p64 "Construct a 64-bit abstract pointer value."  str-utf8? "Return `T` if `s` is a valid UTF-8 string, `NIL` otherwise.\n\nExamples:\n\n    (str-utf8? \"привет\")     → T\n    (str-utf8? \"при\\xffвет\") → NIL"  apply "Return the result of applying a function `f` to a list of arguments.\n\nThe last argument must always be a list which gets spliced as\narguments to the function.\n\nExamples:\n\n    (apply + 1 2 '(3 4 5))   → 15\n    (apply vec '(1 2 3))     → #(3 4 5)\n    (apply arr 'u8 '(3 4 5)) → #vu8(3 4 5)"  cddr "Shorthand for (cdr (cdr lst))."  not "Return `T` if `v` is `NIL`, `T` otherwise."  (doc
+  group sys) "OS-specific functions."  print "Print the arguments to *io-out* with `*print-readably*` set to `T`.\n\nMultiple arguments are separated with a single `#\\space`.\n\nExamples:\n\n    (print 1 2 \"abc\") → 1 2 \"abc\""  cdar "Shorthand for (cdr (car lst))."  cdaar "Shorthand for (cdr (car (car lst)))."  iota "Return a list of generated indices.\n\nThe sequence of numbers generated will contain the elements\n\n    (start start+step … start+(count-1)*step)\n\nExamples:\n\n    (iota 4)        → (0 1 2 3)\n    (iota 4 6)      → (6 7 8 9)\n    (iota 4 6 -0.5) → (6 5.5 5.0 4.5)"  caaddr "Shorthand for (car (car (cdr (cdr lst))))."  getprop "Return a property value associated with the symbol or `def` if\nmissing.\n\nIf the default value is not supplied and the property is missing,\nan exception will be thrown."  (doc
 from a different IO using either `with-input-from` or (a more general)\n`with-bindings`."  every "Return `T` if the predicate is true for _every_ element of the list,\n`NIL` otherwise.\n\nExample:\n\n   (every odd? '(1 3 5 7))                        → T\n   (every (λ (s) (length> s 1)) '(\"ab\" \"cd\" \"e\")) → NIL"  atom? "Return `T` if `v` is a _not_ a cons cell, `NIL` otherwise.  This is\nthe opposite of `cons?`.\n\nThe term \"atom\" comes from the idea of being indivisible.\n\nExamples:\n\n    (atom? \"a\")  → T\n    (atom? NIL)  → T\n    (atom? '(1)) → NIL"  p64 "Construct a 64-bit abstract pointer value."  str-utf8? "Return `T` if `s` is a valid UTF-8 string, `NIL` otherwise.\n\nExamples:\n\n    (str-utf8? \"привет\")     → T\n    (str-utf8? \"при\\xffвет\") → NIL"  apply "Return the result of applying a function `f` to a list of arguments.\n\nThe last argument must always be a list which gets spliced as\narguments to the function.\n\nExamples:\n\n    (apply + 1 2 '(3 4 5))   → 15\n    (apply vec '(1 2 3))     → #(3 4 5)\n    (apply arr 'u8 '(3 4 5)) → #vu8(3 4 5)"  cddr "Shorthand for (cdr (cdr lst))."  not "Return `T` if `v` is `NIL`, `T` otherwise."  (doc
   group sys) "OS-specific functions."  print "Print the arguments to *io-out* with `*print-readably*` set to `T`.\n\nMultiple arguments are separated with a single `#\\space`.\n\nExamples:\n\n    (print 1 2 \"abc\") → 1 2 \"abc\""  cdar "Shorthand for (cdr (car lst))."  cdaar "Shorthand for (cdr (car (car lst)))."  iota "Return a list of generated indices.\n\nThe sequence of numbers generated will contain the elements\n\n    (start start+step … start+(count-1)*step)\n\nExamples:\n\n    (iota 4)        → (0 1 2 3)\n    (iota 4 6)      → (6 7 8 9)\n    (iota 4 6 -0.5) → (6 5.5 5.0 4.5)"  caaddr "Shorthand for (car (car (cdr (cdr lst))))."  getprop "Return a property value associated with the symbol or `def` if\nmissing.\n\nIf the default value is not supplied and the property is missing,\nan exception will be thrown."  (doc
   group time) "Measuring, manipulating and displaying time."  * "Return product of the arguments or `1` when none specified."  putprop "Associate a property value with the symbol."  *io-out* "Current (default) output IO stream.\n\nFunctions may use `*io-out*` for output, which then can be redirected\nto a different IO using either `with-output-to` or (a more general)\n`with-bindings`."  rand-f32 "Return a random 32-bit floating pointer number on [0.0, 1.0] interval."  repl "Run interactive prompt in a loop, reading and evaluating the\nexpressions entered by the user and printing the results."  (doc
@@ -143,7 +143,7 @@
  a rune,\nstring, array of C primitives.\n\nExamples:\n\n    (str-join '(\"\" \"n\" \"9\" \"heh\")\n              *directory-separator*) → \"/n/9/heh\"\n    (str-join '(\"a\" \"b\" \"c\") #\\.)    → \"a.b.c\""  >= "Return `T` if the arguments are in non-increasing order (previous\none is greater than or equal to the next one)."  lognot "Return the result of bitwise NOT (complement) operation on an integer.\n\nExamples:\n\n    (lognot 0)           → -1\n    (lognot #s8(63))     → #s8(-64)\n    (lognot #u16(32767)) → #u16(32768)"  void? "Return `T` if `x` is `#<void>`, `NIL` otherwise."  length= "Perform a bounded length test and return `T` if the length is `n`,\n`NIL` otherwise.\n\nUse this instead of `(= (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  int? "Return `T` if the argument is an integer, `NIL` otherwise."  doc-for "Define documentation for a top level term.\n\nIf `term` is a function signature and `doc` is not specified, just\nthe signature will be included in the documentation, without\nreplacing any previously defined.\n\nFirst `doc` argument is supposed to be a string with the description\nof the term.  The following arguments are expected to be optional tag\npairings that provide grouping for multiple symbols and \"see also\"\nreferences.\n\nUseful in cases where setting the documentation for a term can't\n(or not preferred to) be made during the definition of said term.\nOne of those reasons is that the term is a built-in function\nimplemented in C.\n\nExamples:\n\n    (doc-for (func arg (arg2 0))\n      \"Return something about the `arg` and `arg2`.  This is a short\n       description.\n\n       This is the longer description, following the short one.\n\n       Examples:\n\n           (func 0)   → T\n           (func 1 3) → NIL\"\n      :doc-group stuff\n      :doc-see func2)\n    (doc-for (func arg (:another-variant NIL)))"  nanoseconds-monotonic "Return the number of nanoseconds passed since the first call to this\nfunction.\n\nThe first call will always return 0.\n\nExamples:\n\n    (nanoseconds-monotonic) → #u64(0)\n    (nanoseconds-monotonic) → #u64(47840)"  with-input-from "Evaluate expressions in `body` with `*io-in*` set to `io` during the\nevaluation.\n\nExamples:\n\n    ; read a single expression from a file\n    ; and print it\n    (with-output-to (file \"/tmp/1.txt\" :read)\n      (print (read *io-in*))\n      (newline))"  *stdout* "Standard output IO stream."  car "Return the first element of a cons cell (head of a list) or `NIL` if\nnot available.\n\nExamples:\n\n    (car NIL)      → NIL\n    (car '(1 2 3)) → 1\n    (car '(1 . 2)) → 1"  ceiling "Return the smallest integer that is greater than or equal to `x`.\n\nInfinity and NaN `ceiling` to themselves.\n\nExamples:\n\n    (ceiling 1.2)  → 2.0\n    (ceiling -1.2) → -1.0\n    (ceiling -5)   → -5.0"  arr "Construct a packed array containing the specified arguments.\n\nThe arguments will be coerced to a single `type`.\n\nExamples:\n\n    (arr 's8 0 1 2)   → #arr(s8 0 1 2)\n    (arr 'rune 0 1 2) → #arr(rune #\\nul #\\soh #\\stx)"  <= "Return `T` if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  length> "Perform a bounded length test and return `T` if the length is greater\nthan `n`, `NIL` otherwise.\n\nUse this instead of `(> (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  arg-error "Raise an argument error exception."  asin "Return the arc sine of `x` in radians."  put! "Store the value associated with the key and return the table.\n\nAny existing value associated with the key will be replaced.\n\nExamples:\n\n    (def t #table(a 1 b 2))\n    (put! t 'c 3)       → #table(c 3  b 2  a 1)\n    (put! t 'a \"hello\") → #table(c 3  b 2  a \"hello\")"  log "Return the logarithm of `x` in `base`.\n\nDefault base is `e`, returning natural logarithm of the first\nargument.\n\nExamples:\n\n    (log 100 10)
\ No newline at end of file
   (:doc-see . nconc) (:doc-see . revappend))  io-eof? ((:doc-group . io))  path-exists? ((:doc-group . io)
   (:doc-see . file) (:doc-see . delete-file))  cadddr ((:doc-group . list))  fixnum? ((:doc-group . type)
-NOT (complement) operation on an integer.\n\nExamples:\n\n    (lognot 0)           → -1\n    (lognot #s8(63))     → #s8(-64)\n    (lognot #u16(32767)) → #u16(32768)"  void? "Return `T` if `x` is `#<void>`, `NIL` otherwise."  length= "Perform a bounded length test and return `T` if the length is `n`,\n`NIL` otherwise.\n\nUse this instead of `(= (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  int? "Return `T` if the argument is an integer, `NIL` otherwise."  doc-for "Define documentation for a top level term.\n\nIf `term` is a function signature and `doc` is not specified, just\nthe signature will be included in the documentation, without\nreplacing any previously defined.\n\nFirst `doc` argument is supposed to be a string with the description\nof the term.  The following arguments are expected to be optional tag\npairings that provide grouping for multiple symbols and \"see also\"\nreferences.\n\nUseful in cases where setting the documentation for a term can't\n(or not preferred to) be made during the definition of said term.\nOne of those reasons is that the term is a built-in function\nimplemented in C.\n\nExamples:\n\n    (doc-for (func arg (arg2 0))\n      \"Return something about the `arg` and `arg2`.  This is a short\n       description.\n\n       This is the longer description, following the short one.\n\n       Examples:\n\n           (func 0)   → T\n           (func 1 3) → NIL\"\n      :doc-group stuff\n      :doc-see func2)\n    (doc-for (func arg (:another-variant NIL)))"  nanoseconds-monotonic "Return the number of nanoseconds passed since the first call to this\nfunction.\n\nThe first call will always return 0.\n\nExamples:\n\n    (nanoseconds-monotonic) → #u64(0)\n    (nanoseconds-monotonic) → #u64(47840)"  with-input-from "Evaluate expressions in `body` with `*io-in*` set to `io` during the\nevaluation.\n\nExamples:\n\n    ; read a single expression from a file\n    ; and print it\n    (with-output-to (file \"/tmp/1.txt\" :read)\n      (print (read *io-in*))\n      (newline))"  *stdout* "Standard output IO stream."  car "Return the first element of a cons cell (head of a list) or `NIL` if\nnot available.\n\nExamples:\n\n    (car NIL)      → NIL\n    (car '(1 2 3)) → 1\n    (car '(1 . 2)) → 1"  ceiling "Return the smallest integer that is greater than or equal to `x`.\n\nInfinity and NaN `ceiling` to themselves.\n\nExamples:\n\n    (ceiling 1.2)  → 2.0\n    (ceiling -1.2) → -1.0\n    (ceiling -5)   → -5.0"  arr "Construct a packed array containing the specified arguments.\n\nThe arguments will be coerced to a single `type`.\n\nExamples:\n\n    (arr 's8 0 1 2)   → #arr(s8 0 1 2)\n    (arr 'rune 0 1 2) → #arr(rune #\\nul #\\soh #\\stx)"  <= "Return `T` if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  length> "Perform a bounded length test and return `T` if the length is greater\nthan `n`, `NIL` otherwise.\n\nUse this instead of `(> (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  arg-error "Raise an argument error exception."  asin "Return the arc sine of `x` in radians."  put! "Store the value associated with the key and return the table.\n\nAny existing value associated with the key will be replaced.\n\nExamples:\n\n    (def t #table(a 1 b 2))\n    (put! t 'c 3)       → #table(c 3  b 2  a 1)\n    (put! t 'a \"hello\") → #table(c 3  b 2  a \"hello\")"  log "Return the logarithm of `x` in `base`.\n\nDefault base is `e`, returning natural logarithm of the first\nargument.\n\nExamples:\n\n    (log 100 10)  → 2.0\n    (log 256 2)   → 8.0\n    (log (exp 4)) → 4.0"  cdaddr "Shorthand for (cdr (car (cdr (cdr lst))))."  ash "Return the integer shifted by the specified number of bits to the\nright (negative `nbits`) or left (positive `nbits`).\n\nExamples:\n\n    (ash -3 3) → -24\n    (ash 1 3)  → 8"  str-sub "Return the portion of the string within the specified bo
\ No newline at end of file
+ation on an integer.\n\nExamples:\n\n    (lognot 0)           → -1\n    (lognot #s8(63))     → #s8(-64)\n    (lognot #u16(32767)) → #u16(32768)"  void? "Return `T` if `x` is `#<void>`, `NIL` otherwise."  length= "Perform a bounded length test and return `T` if the length is `n`,\n`NIL` otherwise.\n\nUse this instead of `(= (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  int? "Return `T` if the argument is an integer, `NIL` otherwise."  doc-for "Define documentation for a top level term.\n\nIf `term` is a function signature and `doc` is not specified, just\nthe signature will be included in the documentation, without\nreplacing any previously defined.\n\nFirst `doc` argument is supposed to be a string with the description\nof the term.  The following arguments are expected to be optional tag\npairings that provide grouping for multiple symbols and \"see also\"\nreferences.\n\nUseful in cases where setting the documentation for a term can't\n(or not preferred to) be made during the definition of said term.\nOne of those reasons is that the term is a built-in function\nimplemented in C.\n\nExamples:\n\n    (doc-for (func arg (arg2 0))\n      \"Return something about the `arg` and `arg2`.  This is a short\n       description.\n\n       This is the longer description, following the short one.\n\n       Examples:\n\n           (func 0)   → T\n           (func 1 3) → NIL\"\n      :doc-group stuff\n      :doc-see func2)\n    (doc-for (func arg (:another-variant NIL)))"  nanoseconds-monotonic "Return the number of nanoseconds passed since the first call to this\nfunction.\n\nThe first call will always return 0.\n\nExamples:\n\n    (nanoseconds-monotonic) → #u64(0)\n    (nanoseconds-monotonic) → #u64(47840)"  with-input-from "Evaluate expressions in `body` with `*io-in*` set to `io` during the\nevaluation.\n\nExamples:\n\n    ; read a single expression from a file\n    ; and print it\n    (with-output-to (file \"/tmp/1.txt\" :read)\n      (print (read *io-in*))\n      (newline))"  *stdout* "Standard output IO stream."  car "Return the first element of a cons cell (head of a list) or `NIL` if\nnot available.\n\nExamples:\n\n    (car NIL)      → NIL\n    (car '(1 2 3)) → 1\n    (car '(1 . 2)) → 1"  ceiling "Return the smallest integer that is greater than or equal to `x`.\n\nInfinity and NaN `ceiling` to themselves.\n\nExamples:\n\n    (ceiling 1.2)  → 2.0\n    (ceiling -1.2) → -1.0\n    (ceiling -5)   → -5.0"  arr "Construct a packed array containing the specified arguments.\n\nThe arguments will be coerced to a single `type`.\n\nExamples:\n\n    (arr 's8 0 1 2)   → #arr(s8 0 1 2)\n    (arr 'rune 0 1 2) → #arr(rune #\\nul #\\soh #\\stx)"  <= "Return `T` if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  length> "Perform a bounded length test and return `T` if the length is greater\nthan `n`, `NIL` otherwise.\n\nUse this instead of `(> (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  arg-error "Raise an argument error exception."  asin "Return the arc sine of `x` in radians."  put! "Store the value associated with the key and return the table.\n\nAny existing value associated with the key will be replaced.\n\nExamples:\n\n    (def t #table(a 1 b 2))\n    (put! t 'c 3)       → #table(c 3  b 2  a 1)\n    (put! t 'a \"hello\") → #table(c 3  b 2  a \"hello\")"  log "Return the logarithm of `x` in `base`.\n\nDefault base is `e`, returning natural logarithm of the first\nargument.\n\nExamples:\n\n    (log 100 10)  → 2.0\n    (log 256 2)   → 8.0\n    (log (exp 4)) → 4.0"  cdaddr "Shorthand for (cdr (car (cdr (cdr lst))))."  ash "Return the integer shifted by the specified number of bits to the\nright (negative `nbits`) or left (positive `nbits`).\n\nExamples:\n\n    (ash -3 3) → -24\n    (ash 1 3)  → 8"  str-sub "Return the portion of the string within the specified bounds.\n\nThe `start` 
\ No newline at end of file
 (lognot #u16(32767)) → #u16(32768)"  void? "Return `T` if `x` is `#<void>`, `NIL` otherwise."  length= "Perform a bounded length test and return `T` if the length is `n`,\n`NIL` otherwise.\n\nUse this instead of `(= (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  int? "Return `T` if the argument is an integer, `NIL` otherwise."  doc-for "Define documentation for a top level term.\n\nIf `term` is a function signature and `doc` is not specified, just\nthe signature will be included in the documentation, without\nreplacing any previously defined.\n\nFirst `doc` argument is supposed to be a string with the description\nof the term.  The following arguments are expected to be optional tag\npairings that provide grouping for multiple symbols and \"see also\"\nreferences.\n\nUseful in cases where setting the documentation for a term can't\n(or not preferred to) be made during the definition of said term.\nOne of those reasons is that the term is a built-in function\nimplemented in C.\n\nExamples:\n\n    (doc-for (func arg (arg2 0))\n      \"Return something about the `arg` and `arg2`.  This is a short\n       description.\n\n       This is the longer description, following the short one.\n\n       Examples:\n\n           (func 0)   → T\n           (func 1 3) → NIL\"\n      :doc-group stuff\n      :doc-see func2)\n    (doc-for (func arg (:another-variant NIL)))"  nanoseconds-monotonic "Return the number of nanoseconds passed since the first call to this\nfunction.\n\nThe first call will always return 0.\n\nExamples:\n\n    (nanoseconds-monotonic) → #u64(0)\n    (nanoseconds-monotonic) → #u64(47840)"  with-input-from "Evaluate expressions in `body` with `*io-in*` set to `io` during the\nevaluation.\n\nExamples:\n\n    ; read a single expression from a file\n    ; and print it\n    (with-output-to (file \"/tmp/1.txt\" :read)\n      (print (read *io-in*))\n      (newline))"  *stdout* "Standard output IO stream."  car "Return the first element of a cons cell (head of a list) or `NIL` if\nnot available.\n\nExamples:\n\n    (car NIL)      → NIL\n    (car '(1 2 3)) → 1\n    (car '(1 . 2)) → 1"  ceiling "Return the smallest integer that is greater than or equal to `x`.\n\nInfinity and NaN `ceiling` to themselves.\n\nExamples:\n\n    (ceiling 1.2)  → 2.0\n    (ceiling -1.2) → -1.0\n    (ceiling -5)   → -5.0"  arr "Construct a packed array containing the specified arguments.\n\nThe arguments will be coerced to a single `type`.\n\nExamples:\n\n    (arr 's8 0 1 2)   → #arr(s8 0 1 2)\n    (arr 'rune 0 1 2) → #arr(rune #\\nul #\\soh #\\stx)"  <= "Return `T` if the arguments are in non-decreasing order (previous\none is less than or equal to the next one)."  length> "Perform a bounded length test and return `T` if the length is greater\nthan `n`, `NIL` otherwise.\n\nUse this instead of `(> (length seq) n)`, since it avoids unnecessary\nwork and always terminates.\n\nThe value of `seq` can be of any sequence type."  arg-error "Raise an argument error exception."  asin "Return the arc sine of `x` in radians."  put! "Store the value associated with the key and return the table.\n\nAny existing value associated with the key will be replaced.\n\nExamples:\n\n    (def t #table(a 1 b 2))\n    (put! t 'c 3)       → #table(c 3  b 2  a 1)\n    (put! t 'a \"hello\") → #table(c 3  b 2  a \"hello\")"  log "Return the logarithm of `x` in `base`.\n\nDefault base is `e`, returning natural logarithm of the first\nargument.\n\nExamples:\n\n    (log 100 10)  → 2.0\n    (log 256 2)   → 8.0\n    (log (exp 4)) → 4.0"  cdaddr "Shorthand for (cdr (car (cdr (cdr lst))))."  ash "Return the integer shifted by the specified number of bits to the\nright (negative `nbits`) or left (positive `nbits`).\n\nExamples:\n\n    (ash -3 3) → -24\n    (ash 1 3)  → 8"  str-sub "Return the portion of the string within the specified bounds.\n\nThe `start` and `end` index by rune. Specifying any index out of bounds\nof the string will result in an exception thrown.\n\
\ No newline at end of file
   (:doc-see . nconc) (:doc-see . revappend))  io-eof? ((:doc-group . io))  path-exists? ((:doc-group . io)
   (:doc-see . file) (:doc-see . delete-file))  cadddr ((:doc-group . list))  fixnum? ((:doc-group . type)
--- a/src/docs.sl
+++ b/src/docs.sl
@@ -983,7 +983,7 @@
        (has? t 'a) → T"
   :doc-group table
   :doc-see get
-  :doc-see put
+  :doc-see put!
   :doc-see del!)
 
 (doc-for (table . rest)
@@ -996,5 +996,6 @@
 
        (table)           → #table()
        (table 'a 1 'b 2) → #table(a 1 b 2)"
+  :doc-group table
   :doc-see get
   :doc-see put!)
--