What do things like [string!] and [any-block!] in a function specification block mean?
Function arguments followed by one or more datatype identifiers in a block denote a specific constraint on that argument to a function. For instance, the following header: some-func: func [value [money!]] […] means SOME-FUNC takes one argument assigned to VALUE. The function will return an error if it is supplied an argument other than a money type. See the REBOL/Core User’s Guide Functions chapter for more.