R3 Coding Reference

Author : Ashley G Truter
Updated: 25-Jan-2011
Purpose: Summary of R3 actions, datatypes, functions, natives, ops & system object.
REBOL  : 2.100.110.2.5

Actions

ABS

USAGE:
    ABS value

DESCRIPTION:
    Returns the absolute value.

ARGUMENTS:
    value (number! pair! money! time!)

ABSOLUTE

USAGE:
    ABSOLUTE value

DESCRIPTION:
    Returns the absolute value.

ARGUMENTS:
    value (number! pair! money! time!)

ACTION?

USAGE:
    ACTION? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

ADD

USAGE:
    ADD value1 value2

DESCRIPTION:
    Returns the result of adding two values.

ARGUMENTS:
    value1 (scalar! date!)
    value2

AND~

USAGE:
    AND~ value1 value2

DESCRIPTION:
    Returns the first value ANDed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

APPEND

USAGE:
    APPEND series value /part length /only /dup count

DESCRIPTION:
    Inserts a value at tail of series and returns the series at head. (Modifies)

ARGUMENTS:
    series -- Series at point to insert (series! port! map! gob! object! bitset!)
    value -- The value to insert (any-type!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! series! pair!)
    /only -- Only insert a block as a single value (not the contents of the block)
    /dup -- Duplicates the insert a specified number of times
        count (number! pair!)

AT

USAGE:
    AT series index

DESCRIPTION:
    Returns the series at the specified index.

ARGUMENTS:
    series (series! gob! port!)
    index (number! logic! pair!)

BACK

USAGE:
    BACK series

DESCRIPTION:
    Returns the series at its previous position.

ARGUMENTS:
    series (series! gob! port!)

BINARY?

USAGE:
    BINARY? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

BITSET?

USAGE:
    BITSET? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

BLOCK?

USAGE:
    BLOCK? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

CHANGE

USAGE:
    CHANGE series value /part length /only /dup count

DESCRIPTION:
    Changes a value in a series and returns the series after the change. (Modifies)

ARGUMENTS:
    series -- Series at point to change (series! gob! port!)
    value -- The new value (any-type!)

REFINEMENTS:
    /part -- Limits the amount to change to a given length or position
        length (number! series! pair!)
    /only -- Only change a block as a single value (not the contents of the block)
    /dup -- Duplicates the change a specified number of times
        count (number! pair!)

CHAR?

USAGE:
    CHAR? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

CLEAR

USAGE:
    CLEAR series

DESCRIPTION:
    Removes all values. For series, removes from current index to tail and returns tail.  (Modifies)

ARGUMENTS:
    series (series! port! map! gob! bitset! none!)

CLOSE

USAGE:
    CLOSE port

DESCRIPTION:
    Closes a port.

ARGUMENTS:
    port (port!)

CLOSURE?

USAGE:
    CLOSURE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

COMMAND?

USAGE:
    COMMAND? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

COMPLEMENT

USAGE:
    COMPLEMENT value

DESCRIPTION:
    Returns the one's complement value.

ARGUMENTS:
    value (logic! integer! tuple! binary! bitset! typeset! image!)

COPY

USAGE:
    COPY value /part length /deep /types kinds

DESCRIPTION:
    Copies a series or object.

ARGUMENTS:
    value (series! port! map! object! bitset! any-function!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! series! pair!)
    /deep -- Also copies series values within the block
    /types -- What datatypes to copy
        kinds (typeset! datatype!)

CREATE

USAGE:
    CREATE port

DESCRIPTION:
    Send port a create request.

ARGUMENTS:
    port (port! file! url! block!)

DATATYPE?

USAGE:
    DATATYPE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

DATE?

USAGE:
    DATE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

DECIMAL?

USAGE:
    DECIMAL? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

DELETE

USAGE:
    DELETE port

DESCRIPTION:
    Send port a delete request.

ARGUMENTS:
    port (port! file! url! block!)

DIVIDE

USAGE:
    DIVIDE value1 value2

DESCRIPTION:
    Returns the first value divided by the second.

ARGUMENTS:
    value1 (scalar!)
    value2 (scalar!)

EMAIL?

USAGE:
    EMAIL? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

EMPTY?

USAGE:
    EMPTY? series

DESCRIPTION:
    Returns TRUE if empty or NONE, or for series if index is at or beyond its tail.

ARGUMENTS:
    series (series! object! gob! port! bitset! map! none!)

ERROR?

USAGE:
    ERROR? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

EVEN?

USAGE:
    EVEN? number

DESCRIPTION:
    Returns TRUE if the number is even.

ARGUMENTS:
    number (number! char! date! money! time! pair!)

EVENT?

USAGE:
    EVENT? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

FILE?

USAGE:
    FILE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

FIND

USAGE:
    FIND series value /part length /only /case /any /with wild /skip size /last /reverse /tail /match

DESCRIPTION:
    Finds a value in a series and returns the series at the start of it.

ARGUMENTS:
    series (series! gob! port! bitset! typeset! object! none!)
    value (any-type!)

REFINEMENTS:
    /part -- Limits the search to a given length or position
        length (number! series! pair!)
    /only -- Treats a series value as only a single value
    /case -- Characters are case-sensitive
    /any -- Enables the * and ? wildcards
    /with -- Allows custom wildcards
        wild -- Specifies alternates for * and ? (string!)
    /skip -- Treat the series as records of fixed size
        size (integer!)
    /last -- Backwards from end of series
    /reverse -- Backwards from the current position
    /tail -- Returns the end of the series
    /match -- Performs comparison and returns the tail of the match

FRAME?

USAGE:
    FRAME? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

FUNCTION?

USAGE:
    FUNCTION? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

GET-PATH?

USAGE:
    GET-PATH? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

GET-WORD?

USAGE:
    GET-WORD? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

GOB?

USAGE:
    GOB? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

HANDLE?

USAGE:
    HANDLE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

HEAD

USAGE:
    HEAD series

DESCRIPTION:
    Returns the series at its head.

ARGUMENTS:
    series (series! gob! port!)

HEAD?

USAGE:
    HEAD? series

DESCRIPTION:
    Returns TRUE if a series is at its head.

ARGUMENTS:
    series (series! gob! port!)

IMAGE?

USAGE:
    IMAGE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

INDEX?

USAGE:
    INDEX? series /xy

DESCRIPTION:
    Returns the index number of the current position in the series.

ARGUMENTS:
    series (series! gob! port!)

REFINEMENTS:
    /xy -- Returns index as an XY pair offset

INSERT

USAGE:
    INSERT series value /part length /only /dup count

DESCRIPTION:
    Inserts into a series and returns the series after the insert. (Modifies)

ARGUMENTS:
    series -- Series at point to insert (series! port! map! gob! object! bitset! port!)
    value -- The value to insert (any-type!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! series! pair!)
    /only -- Only insert a block as a single value (not the contents of the block)
    /dup -- Duplicates the insert a specified number of times
        count (number! pair!)

INTEGER?

USAGE:
    INTEGER? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

ISSUE?

USAGE:
    ISSUE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

LENGTH?

USAGE:
    LENGTH? series

DESCRIPTION:
    Returns the length of the series from the current position.

ARGUMENTS:
    series (none! series! port! map! tuple! bitset! object! gob! struct! any-word!)

LIBRARY?

USAGE:
    LIBRARY? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

LIT-PATH?

USAGE:
    LIT-PATH? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

LIT-WORD?

USAGE:
    LIT-WORD? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

LOGIC?

USAGE:
    LOGIC? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

MAKE

USAGE:
    MAKE type spec

DESCRIPTION:
    Constructs a specified datatype.

ARGUMENTS:
    type -- The datatype or example value (any-type!)
    spec -- The attributes of the new value (any-type!)

MAP?

USAGE:
    MAP? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

MODIFY

USAGE:
    MODIFY target field value

DESCRIPTION:
    Change mode or control for port or file.

ARGUMENTS:
    target (port! file!)
    field (word! none!)
    value

MODULE?

USAGE:
    MODULE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

MONEY?

USAGE:
    MONEY? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

MULTIPLY

USAGE:
    MULTIPLY value1 value2

DESCRIPTION:
    Returns the first value multiplied by the second.

ARGUMENTS:
    value1 (scalar!)
    value2 (scalar!)

NATIVE?

USAGE:
    NATIVE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

NEGATE

USAGE:
    NEGATE number

DESCRIPTION:
    Changes the sign of a number.

ARGUMENTS:
    number (number! pair! money! time! bitset!)

NEXT

USAGE:
    NEXT series

DESCRIPTION:
    Returns the series at its next position.

ARGUMENTS:
    series (series! gob! port!)

NONE?

USAGE:
    NONE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

OBJECT?

USAGE:
    OBJECT? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

ODD?

USAGE:
    ODD? number

DESCRIPTION:
    Returns TRUE if the number is odd.

ARGUMENTS:
    number (number! char! date! money! time! pair!)

OP?

USAGE:
    OP? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

OPEN

USAGE:
    OPEN spec /new /read /write /seek /allow access

DESCRIPTION:
    Opens a port. Makes a new port from a specification, if necessary.

ARGUMENTS:
    spec (port! file! url! block!)

REFINEMENTS:
    /new -- Create new file - if it exists, reset it (truncate)
    /read -- Open for read access
    /write -- Open for write access
    /seek -- Optimize for random access
    /allow -- Specifies protection attributes
        access (block!)

OPEN?

USAGE:
    OPEN? port

DESCRIPTION:
    Returns TRUE if port is open.

ARGUMENTS:
    port (port!)

OR~

USAGE:
    OR~ value1 value2

DESCRIPTION:
    Returns the first value ORed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

PAIR?

USAGE:
    PAIR? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

PAREN?

USAGE:
    PAREN? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

PAST?

USAGE:
    PAST? series

DESCRIPTION:
    Returns TRUE if a series index is past its tail.

ARGUMENTS:
    series (series! gob! port!)

PATH?

USAGE:
    PATH? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

PERCENT?

USAGE:
    PERCENT? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

PICK

USAGE:
    PICK series index

DESCRIPTION:
    Returns the value at the specified position in a series.

ARGUMENTS:
    series (series! map! gob! pair! date! time! tuple! bitset! port!)
    index -- Index offset, symbol, or other value to use as index

POKE

USAGE:
    POKE value index data

DESCRIPTION:
    Returns value after changing its data at the given index. (Modifies)

ARGUMENTS:
    value (series! port! map! gob! bitset!)
    index -- Index offset, symbol, or other value to use as index
    data -- New value

PORT?

USAGE:
    PORT? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

POWER

USAGE:
    POWER number exponent

DESCRIPTION:
    Returns the first number raised to the second number.

ARGUMENTS:
    number (number!)
    exponent (number!)

QUERY

USAGE:
    QUERY target /mode field

DESCRIPTION:
    Returns information about a port (also specified as file or URL).

ARGUMENTS:
    target (port! file! url! block!)

REFINEMENTS:
    /mode -- Get mode information
        field -- NONE will return valid modes for port type (word! none!)

RANDOM

USAGE:
    RANDOM value /seed /secure /only

DESCRIPTION:
    Returns a random value of the datatype or shuffles series (modifies).

ARGUMENTS:
    value -- Maximum value of result

REFINEMENTS:
    /seed -- Restart or randomize
    /secure -- Returns a cryptographically secure random number
    /only -- Pick a random value from a series

READ

USAGE:
    READ source /part length /seek index /string /lines

DESCRIPTION:
    Read from a file, URL, or other port.

ARGUMENTS:
    source (port! file! url! block!)

REFINEMENTS:
    /part -- Partial read a given number of units (source relative)
        length (number!)
    /seek -- Read from a specific position (source relative)
        index (number!)
    /string -- Convert UTF and line terminators to standard text string
    /lines -- Convert to block of strings (implies /string)

REBCODE?

USAGE:
    REBCODE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

REFINEMENT?

USAGE:
    REFINEMENT? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

REFLECT

USAGE:
    REFLECT value field

DESCRIPTION:
    Returns definition-related details about a value.

ARGUMENTS:
    value (any-type!)
    field -- Such as: spec, body, words, values, title (word!)

REMAINDER

USAGE:
    REMAINDER value1 value2

DESCRIPTION:
    Returns the remainder of first value divided by second.

ARGUMENTS:
    value1 (scalar!)
    value2 (scalar!)

REMOVE

USAGE:
    REMOVE series /part length

DESCRIPTION:
    Removes value(s) from a series and returns after the remove. (Modifies)

ARGUMENTS:
    series (series! gob! port! bitset! none!)

REFINEMENTS:
    /part -- Removes to a given length or position
        length (number! series! pair! char!)

RENAME

USAGE:
    RENAME from to

DESCRIPTION:
    Rename a file.

ARGUMENTS:
    from (port! file! url! block!)
    to (port! file! url! block!)

REVERSE

USAGE:
    REVERSE series /part length

DESCRIPTION:
    Reverses a series and similar types. (Modifies)

ARGUMENTS:
    series (series! gob! tuple! pair!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! series!)

RM

USAGE:
    RM port

DESCRIPTION:
    Send port a delete request.

ARGUMENTS:
    port (port! file! url! block!)

ROUND

USAGE:
    ROUND n /to scale /even /down /half-down /floor /ceiling /half-ceiling

DESCRIPTION:
    Rounds a numeric value. Halves round up (away from zero) by default.

ARGUMENTS:
    n -- The value to round (number! pair! money! time!)

REFINEMENTS:
    /to -- Return the nearest multiple of the scale parameter
        scale -- Must be a non-zero value (number! money! time!)
    /even -- Halves round toward even results
    /down -- Round toward zero, ignoring discarded digits. (truncate)
    /half-down -- Halves round toward zero
    /floor -- Round in negative direction
    /ceiling -- Round in positive direction
    /half-ceiling -- Halves round in positive direction

SELECT

USAGE:
    SELECT series value /part length /only /case /any /with wild /skip size /last /reverse

DESCRIPTION:
    Finds a value in the series and returns the value or series after it.

ARGUMENTS:
    series (series! port! map! object! none!)
    value (any-type!)

REFINEMENTS:
    /part -- Limits the search to a given length or position
        length (number! series! pair!)
    /only -- Treats a series value as only a single value
    /case -- Characters are case-sensitive
    /any -- Enables the * and ? wildcards
    /with -- Allows custom wildcards
        wild -- Specifies alternates for * and ? (string!)
    /skip -- Treat the series as records of fixed size
        size (integer!)
    /last -- Backwards from end of series
    /reverse -- Backwards from the current position

SET-PATH?

USAGE:
    SET-PATH? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

SET-WORD?

USAGE:
    SET-WORD? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

SKIP

USAGE:
    SKIP series offset

DESCRIPTION:
    Returns the series forward or backward from the current position.

ARGUMENTS:
    series (series! gob! port!)
    offset (number! logic! pair!)

SORT

USAGE:
    SORT series /case /skip size /compare comparator /part length /all /reverse

DESCRIPTION:
    Sorts a series. (Modifies)

ARGUMENTS:
    series (series!)

REFINEMENTS:
    /case -- Case sensitive sort
    /skip -- Treat the series as records of fixed size
        size -- Size of each record (integer!)
    /compare -- Comparator offset, block or function
        comparator (integer! block! any-function!)
    /part -- Sort only part of a series
        length -- Length of series to sort (number! series!)
    /all -- Compare all fields
    /reverse -- Reverse sort order

STRING?

USAGE:
    STRING? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

STRUCT?

USAGE:
    STRUCT? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

SUBTRACT

USAGE:
    SUBTRACT value1 value2

DESCRIPTION:
    Returns the second value subtracted from the first.

ARGUMENTS:
    value1 (scalar! date!)
    value2 (scalar! date!)

SWAP

USAGE:
    SWAP series1 series2

DESCRIPTION:
    Swaps elements of a series. (Modifies)

ARGUMENTS:
    series1 (series! gob!)
    series2 (series! gob!)

TAG?

USAGE:
    TAG? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

TAIL

USAGE:
    TAIL series

DESCRIPTION:
    Returns the series at the position after the last value.

ARGUMENTS:
    series (series! gob! port!)

TAIL?

USAGE:
    TAIL? series

DESCRIPTION:
    Returns TRUE if empty, or for series, if index is at or beyond its tail.

ARGUMENTS:
    series (series! gob! port! bitset! map!)

TAKE

USAGE:
    TAKE value /part length /deep /last

DESCRIPTION:
    Copies and removes from series. (Modifies)

ARGUMENTS:
    value (series! port! gob! none!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! series! pair!)
    /deep -- Also copies series values within the block
    /last -- Take it from the tail end

TASK?

USAGE:
    TASK? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

TIME?

USAGE:
    TIME? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

TO

USAGE:
    TO type spec

DESCRIPTION:
    Converts to a specified datatype.

ARGUMENTS:
    type -- The datatype or example value (any-type!)
    spec -- The attributes of the new value (any-type!)

TRIM

USAGE:
    TRIM series /head /tail /auto /lines /all /with str

DESCRIPTION:
    Removes space from a string or NONE from a block or object.

ARGUMENTS:
    series (series! object! error! module!)

REFINEMENTS:
    /head -- Removes only from the head
    /tail -- Removes only from the tail
    /auto -- Auto indents lines relative to first line
    /lines -- Removes all line breaks and extra spaces
    /all -- Removes all whitespace
    /with
        str -- Same as /all, but removes characters in 'str' (char! string! binary! integer!)

TUPLE?

USAGE:
    TUPLE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

TYPESET?

USAGE:
    TYPESET? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

UNSET?

USAGE:
    UNSET? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

UPDATE

USAGE:
    UPDATE port

DESCRIPTION:
    Updates the port's external state to match internal state (normally after read/write).

ARGUMENTS:
    port (port!)

URL?

USAGE:
    URL? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

UTYPE?

USAGE:
    UTYPE? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

VECTOR?

USAGE:
    VECTOR? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

WORD?

USAGE:
    WORD? value

DESCRIPTION:
    Returns TRUE if it is this type.

ARGUMENTS:
    value (any-type!)

WRITE

USAGE:
    WRITE destination data /part length /seek index /append /allow access /lines

DESCRIPTION:
    Writes to a file, URL, or other port - auto-converts text strings.

ARGUMENTS:
    destination (port! file! url! block!)
    data -- Data to write (non-binary converts to UTF-8) (binary! string! block!)

REFINEMENTS:
    /part -- Partial write a given number of units
        length (number!)
    /seek -- Write at a specific position
        index (number!)
    /append -- Write data at end of file
    /allow -- Specifies protection attributes
        access (block!)
    /lines -- Write each value in a block as a separate line

XOR~

USAGE:
    XOR~ value1 value2

DESCRIPTION:
    Returns the first value exclusive ORed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

Datatypes

ACTION!

It is defined as a datatype native function (standard polymorphic) 
It is of the general type function 

Found these related words: 
    ...

BINARY!

It is defined as a string series of bytes 
It is of the general type string 

No values defined for binary!

BITSET!

It is defined as a set of bit flags 
It is of the general type string 

No values defined for bitset!

BLOCK!

It is defined as a series of values 
It is of the general type block 

Found these related words: 
   datatypes       block!    length: 56 

CHAR!

It is defined as a 8bit and 16bit character 
It is of the general type scalar 

Found these related words: 
   backslash       char!     #"\" 
   backspace       char!     #"^H" 
   bs              char!     #"^H" 
   cr              char!     #"^M" 
   escape          char!     #"^[" 
   lf              char!     #"^/" 
   newline         char!     #"^/" 
   newpage         char!     #"^L" 
   null            char!     #"^@" 
   slash           char!     #"/" 
   sp              char!     #" " 
   space           char!     #" " 
   tab             char!     #"^-" 

CLOSURE!

It is defined as a function with persistent locals (indefinite extent) 
It is of the general type function 

No values defined for closure!

COMMAND!

It is defined as a special dispatch-based function 
It is of the general type function 

No values defined for command!

DATATYPE!

It is defined as a type of datatype 
It is of the general type symbol 

Found these related words: 
    ...

DATE!

It is defined as a day, month, year, time of day, and timezone 
It is of the general type scalar 

No values defined for date!

DECIMAL!

It is defined as a 64bit floating point number (IEEE standard) 
It is of the general type scalar 

Found these related words: 
   pi              decimal!  3.14159265358979 

EMAIL!

It is defined as an email address 
It is of the general type string 

No values defined for email!

END!

It is defined as an internal marker for end of block 
It is of the general type internal 

No values defined for end!

ERROR!

It is defined as an errors and throws 
It is of the general type object 

No values defined for error!

EVENT!

It is defined as an user interface event (efficiently sized) 
It is of the general type opt-object 

No values defined for event!

FILE!

It is defined as a file name or path 
It is of the general type string 

No values defined for file!

FRAME!

It is defined as an internal context frame 
It is of the general type internal 

No values defined for frame!

FUNCTION!

It is defined as an interpreted function (user-defined or mezzanine) 
It is of the general type function 

Found these related words: 
    ...

GET-PATH!

It is defined as a the value of a path 
It is of the general type block 

No values defined for get-path!

GET-WORD!

It is defined as a the value of a word (variable) 
It is of the general type word 

No values defined for get-word!

GOB!

It is defined as a graphical object 
It is of the general type opt-object 

No values defined for gob!

HANDLE!

It is defined as an arbitrary internal object or value 
It is of the general type internal 

No values defined for handle!

IMAGE!

It is defined as a RGB image with alpha channel 
It is of the general type vector 

No values defined for image!

INTEGER!

It is defined as a 64 bit integer 
It is of the general type scalar 

Found these related words: 
   zero            integer!  0 

ISSUE!

It is defined as an identifying marker word 
It is of the general type word 

No values defined for issue!

LIBRARY!

It is defined as an external library reference 
It is of the general type internal 

No values defined for library!

LIT-PATH!

It is defined as a literal path value 
It is of the general type block 

No values defined for lit-path!

LIT-WORD!

It is defined as a literal word value 
It is of the general type word 

No values defined for lit-word!

LOGIC!

It is defined as a boolean true or false 
It is of the general type scalar 

Found these related words: 
   false           logic!    false 
   no              logic!    false 
   off             logic!    false 
   on              logic!    true 
   true            logic!    true 
   yes             logic!    true 

MAP!

It is defined as a name-value pairs (hash associative) 
It is of the general type block 

No values defined for map!

MODULE!

It is defined as a loadable context of code and data 
It is of the general type object 

No values defined for module!

MONEY!

It is defined as a high precision decimals with denomination (opt) 
It is of the general type scalar 

No values defined for money!

NATIVE!

It is defined as a direct CPU evaluated function 
It is of the general type function 

Found these related words: 
    ...

NONE!

It is defined as a no value represented 
It is of the general type scalar 

Found these related words: 
   none            none!     none 

OBJECT!

It is defined as a context of names with values 
It is of the general type object 

Found these related words: 
   lib             object!   [end! unset! none! logic! integer! decimal! p... 
   REBOL           object!   [product version build platform license catal... 
   sys             object!   [native action do* make-module* boot-banner b... 
   system          object!   [product version build platform license catal... 

OP!

It is defined as an infix operator (special evaluation exception) 
It is of the general type function 

Found these related words: 
    ...

PAIR!

It is defined as a two dimensional point or size 
It is of the general type scalar 

No values defined for pair!

PAREN!

It is defined as an automatically evaluating block 
It is of the general type block 

No values defined for paren!

PATH!

It is defined as a refinements to functions, objects, files 
It is of the general type block 

No values defined for path!

PERCENT!

It is defined as a special form of decimals (used mainly for layout) 
It is of the general type scalar 

No values defined for percent!

PORT!

It is defined as an external series, an I/O channel 
It is of the general type object 

No values defined for port!

REBCODE!

It is defined as a virtual machine function 
It is of the general type block 

No values defined for rebcode!

REFINEMENT!

It is defined as a variation of meaning or location 
It is of the general type word 

No values defined for refinement!

SET-PATH!

It is defined as a definition of a path's value 
It is of the general type block 

No values defined for set-path!

SET-WORD!

It is defined as a definition of a word's value 
It is of the general type word 

No values defined for set-word!

STRING!

It is defined as a string series of characters 
It is of the general type string 

Found these related words: 
   crlf            string!   "^M^/" 

STRUCT!

It is defined as a native structure definition 
It is of the general type block 

No values defined for struct!

TAG!

It is defined as a markup string (HTML or XML) 
It is of the general type string 

No values defined for tag!

TASK!

It is defined as an evaluation environment 
It is of the general type object 

No values defined for task!

TIME!

It is defined as a time of day or duration 
It is of the general type scalar 

No values defined for time!

TUPLE!

It is defined as a sequence of small integers (colors, versions, IP) 
It is of the general type scalar 

Found these related words: 
   aqua            tuple!    40.100.130 
   base-color      tuple!    200.200.200 
   beige           tuple!    255.228.196 
   black           tuple!    0.0.0 
   blue            tuple!    0.0.255 
   brick           tuple!    178.34.34 
   brown           tuple!    139.69.19 
   coal            tuple!    64.64.64 
   coffee          tuple!    76.26.0 
   crimson         tuple!    220.20.60 
   cyan            tuple!    0.255.255 
   forest          tuple!    0.48.0 
   gold            tuple!    255.205.40 
   gray            tuple!    128.128.128 
   green           tuple!    0.255.0 
   ivory           tuple!    255.255.240 
   khaki           tuple!    179.179.126 
   leaf            tuple!    0.128.0 
   linen           tuple!    250.240.230 
   magenta         tuple!    255.0.255 
   maroon          tuple!    128.0.0 
   mint            tuple!    100.136.116 
   navy            tuple!    0.0.128 
   oldrab          tuple!    72.72.16 
   olive           tuple!    128.128.0 
   orange          tuple!    255.150.10 
   papaya          tuple!    255.80.37 
   pewter          tuple!    170.170.170 
   pink            tuple!    255.164.200 
   purple          tuple!    128.0.128 
   reblue          tuple!    38.58.108 
   rebolor         tuple!    142.128.110 
   red             tuple!    255.0.0 
   sienna          tuple!    160.82.45 
   silver          tuple!    192.192.192 
   sky             tuple!    164.200.255 
   snow            tuple!    240.240.240 
   tan             tuple!    222.184.135 
   teal            tuple!    0.128.128 
   violet          tuple!    72.0.90 
   water           tuple!    80.108.142 
   wheat           tuple!    245.222.129 
   white           tuple!    255.255.255 
   yello           tuple!    255.240.120 
   yellow          tuple!    255.255.0 

TYPESET!

It is defined as a set of datatypes 
It is of the general type opt-object 

Found these related words: 
   any-block!      typeset!  [block! paren! path! set-path! get-path! lit-... 
   any-function!   typeset!  [native! action! rebcode! command! op! closur... 
   any-object!     typeset!  [object! module! error! task! port!] 
   any-path!       typeset!  [path! set-path! get-path! lit-path!] 
   any-string!     typeset!  [string! file! email! url! tag!] 
   any-type!       typeset!  [unset! none! logic! integer! decimal! percen... 
   any-word!       typeset!  [word! set-word! get-word! lit-word! refineme... 
   immediate!      typeset!  [none! logic! integer! decimal! percent! mone... 
   internal!       typeset!  [end! unset! frame! handle!] 
   number!         typeset!  [integer! decimal! percent!] 
   scalar!         typeset!  [integer! decimal! percent! money! char! pair... 
   series!         typeset!  [binary! string! file! email! url! tag! image... 

UNSET!

It is defined as a no value returned or set 
It is of the general type internal 

URL!

It is defined as an uniform resource locator or identifier 
It is of the general type string 

Found these related words: 
   rebol.com       url!      http://www.rebol.com 

UTYPE!

It is defined as an user defined datatype 
It is of the general type object 

No values defined for utype!

VECTOR!

It is defined as a high performance arrays (single datatype) 
It is of the general type vector 

No values defined for vector!

WORD!

It is defined as a word (symbol or variable) 
It is of the general type word 

No values defined for word!

Functions

?

USAGE:
    ? 'word /doc

DESCRIPTION:
    Prints information about words and values.

ARGUMENTS:
    word (any-type!)

REFINEMENTS:
    /doc -- Open web browser to related documentation.

??

USAGE:
    ?? 'name

DESCRIPTION:
    Debug print a word, path, or block of such, followed by its molded value.

ARGUMENTS:
    name -- Word, path, and block to obtain values.

ABOUT

USAGE:
    ABOUT 

DESCRIPTION:
    Information about REBOL

ALTER

USAGE:
    ALTER series value /case

DESCRIPTION:
    If a value is not found in a series, append it; otherwise, remove it. Returns true if added. (Modifies)

ARGUMENTS:
    series (series! port! bitset!)
    value

REFINEMENTS:
    /case -- Case-sensitive comparison

ANY-BLOCK?

USAGE:
    ANY-BLOCK? value

DESCRIPTION:
    Return TRUE if value is any type of block.

ARGUMENTS:
    value (any-type!)

ANY-FUNCTION?

USAGE:
    ANY-FUNCTION? value

DESCRIPTION:
    Return TRUE if value is any type of function.

ARGUMENTS:
    value (any-type!)

ANY-OBJECT?

USAGE:
    ANY-OBJECT? value

DESCRIPTION:
    Return TRUE if value is any type of object.

ARGUMENTS:
    value (any-type!)

ANY-PATH?

USAGE:
    ANY-PATH? value

DESCRIPTION:
    Return TRUE if value is any type of path.

ARGUMENTS:
    value (any-type!)

ANY-STRING?

USAGE:
    ANY-STRING? value

DESCRIPTION:
    Return TRUE if value is any type of string.

ARGUMENTS:
    value (any-type!)

ANY-WORD?

USAGE:
    ANY-WORD? value

DESCRIPTION:
    Return TRUE if value is any type of word.

ARGUMENTS:
    value (any-type!)

ARRAY

USAGE:
    ARRAY size /initial value

DESCRIPTION:
    Makes and initializes a series of a given size.

ARGUMENTS:
    size -- Size or block of sizes for each dimension (integer! block!)

REFINEMENTS:
    /initial -- Specify an initial value for all elements
        value -- Initial value (will be called each time if a function)

ASK

USAGE:
    ASK question /hide

DESCRIPTION:
    Ask the user for input.

ARGUMENTS:
    question -- Prompt to user (series!)

REFINEMENTS:
    /hide -- mask input with *

BODY-OF

USAGE:
    BODY-OF value

DESCRIPTION:
    Returns a copy of the body of a function, object, or module

ARGUMENTS:
    value

BOOT-PRINT

USAGE:
    BOOT-PRINT data

DESCRIPTION:
    Prints during boot when not quiet.

ARGUMENTS:
    data

BUGS

USAGE:
    BUGS 

DESCRIPTION:
    View bug database.

CAUSE-ERROR

USAGE:
    CAUSE-ERROR err-type err-id args

DESCRIPTION:
    Causes an immediate error throw with the provided information.

ARGUMENTS:
    err-type (word!)
    err-id (word!)
    args

CD

USAGE:
    CD 'path

DESCRIPTION:
    Change directory (shell shortcut function).

ARGUMENTS:
    path -- Accepts %file, :variables and just words (as dirs) (file! word! path! unset! string!)

CHANGES

USAGE:
    CHANGES 

DESCRIPTION:
    What's new about this version.

CHARSET

USAGE:
    CHARSET chars /length len

DESCRIPTION:
    Makes a bitset of chars for the parse function.

ARGUMENTS:
    chars (string! block! binary! char! integer!)

REFINEMENTS:
    /length -- Preallocate this many bits
        len -- Must be > 0 (integer!)

CHAT

USAGE:
    CHAT 

DESCRIPTION:
    Open REBOL DevBase forum/BBS.

CLEAN-PATH

USAGE:
    CLEAN-PATH file /only /dir

DESCRIPTION:
    Returns new directory path with //, . and .. processed.

ARGUMENTS:
    file (file! url! string!)

REFINEMENTS:
    /only -- Do not prepend current directory
    /dir -- Add a trailing / if missing

CLOSURE

USAGE:
    CLOSURE spec body

DESCRIPTION:
    Defines a closure function.

ARGUMENTS:
    spec -- Help string (opt) followed by arg words (and opt type and string) (block!)
    body -- The body block of the function (block!)

COLLECT

USAGE:
    COLLECT body /into output

DESCRIPTION:
    Evaluates a block, storing values via KEEP function, and returns block of collected values.

ARGUMENTS:
    body -- Block to evaluate (block!)

REFINEMENTS:
    /into -- Insert into a buffer instead (returns position after insert)
        output -- The buffer series (modified) (series!)

CONFIRM

USAGE:
    CONFIRM question /with choices

DESCRIPTION:
    Confirms a user choice.

ARGUMENTS:
    question -- Prompt to user (series!)

REFINEMENTS:
    /with
        choices (string! block!)

CONTEXT

USAGE:
    CONTEXT blk

DESCRIPTION:
    Defines a unique object.

ARGUMENTS:
    blk -- Object words and values. (block!)

DECODE

USAGE:
    DECODE type data

DESCRIPTION:
    Decodes a series of bytes into the related datatype (e.g. image!).

ARGUMENTS:
    type -- Media type (jpeg, png, etc.) (word!)
    data -- The data to decode (binary!)

DECODE-URL

USAGE:
    DECODE-URL url

DESCRIPTION:
    Decode a URL according to rules of sys/*parse-url.

ARGUMENTS:
    url

DEFAULT

USAGE:
    DEFAULT 'word value

DESCRIPTION:
    Set a word to a default value if it hasn't been set yet.

ARGUMENTS:
    word -- The word (use :var for word! values) (word! set-word! lit-word!)
    value -- The value

DELTA-PROFILE

USAGE:
    DELTA-PROFILE block

DESCRIPTION:
    Delta-profile of running a specific block.

ARGUMENTS:
    block (block!)

DELTA-TIME

USAGE:
    DELTA-TIME block

DESCRIPTION:
    Delta-time - return the time it takes to evaluate a block.

ARGUMENTS:
    block (block!)

DEMO

USAGE:
    DEMO 

DESCRIPTION:
    Run R3 demo.

DIR?

USAGE:
    DIR? target

DESCRIPTION:
    Returns TRUE if the file or url ends with a slash (or backslash).

ARGUMENTS:
    target (file! url!)

DIRIZE

USAGE:
    DIRIZE path

DESCRIPTION:
    Returns a copy (always) of the path as a directory (ending slash).

ARGUMENTS:
    path (file! string! url!)

DOCS

USAGE:
    DOCS 

DESCRIPTION:
    Browse on-line documentation.

DOES

USAGE:
    DOES body

DESCRIPTION:
    A shortcut to define a function that has no arguments or locals.

ARGUMENTS:
    body -- The body block of the function (block!)

DP

USAGE:
    DP block

DESCRIPTION:
    Delta-profile of running a specific block.

ARGUMENTS:
    block (block!)

DT

USAGE:
    DT block

DESCRIPTION:
    Delta-time - return the time it takes to evaluate a block.

ARGUMENTS:
    block (block!)

DUMP-OBJ

USAGE:
    DUMP-OBJ obj /match pat

DESCRIPTION:
    Returns a block of information about an object or port.

ARGUMENTS:
    obj (object! port!)

REFINEMENTS:
    /match -- Include only those that match a string or datatype
        pat

ENCODE

USAGE:
    ENCODE type data /options opts

DESCRIPTION:
    Encodes a datatype (e.g. image!) into a series of bytes.

ARGUMENTS:
    type -- Media type (jpeg, png, etc.) (word!)
    data -- The data to encode (image! binary! string!)

REFINEMENTS:
    /options
        opts -- Special encoding options (block!)

ENCODING?

USAGE:
    ENCODING? data

DESCRIPTION:
    Returns the media codec name for given binary data. (identify)

ARGUMENTS:
    data (binary!)

EXISTS?

USAGE:
    EXISTS? target

DESCRIPTION:
    Returns the type of a file or URL if it exists, otherwise none.

ARGUMENTS:
    target (file! url!)

EXTEND

USAGE:
    EXTEND obj word val

DESCRIPTION:
    Extend an object, map, or block type with word and value pair.

ARGUMENTS:
    obj (object! map! block! paren!)
    word (any-word!)
    val

EXTRACT

USAGE:
    EXTRACT series width /index pos /default value /into output

DESCRIPTION:
    Extracts a value from a series at regular intervals.

ARGUMENTS:
    series (series!)
    width -- Size of each entry (the skip) (integer!)

REFINEMENTS:
    /index -- Extract from an offset position
        pos -- The position(s) (number! logic! block!)
    /default -- Use a default value instead of none
        value -- The value to use (will be called each time if a function)
    /into -- Insert into a buffer instead (returns position after insert)
        output -- The buffer series (modified) (series!)

FILE-TYPE?

USAGE:
    FILE-TYPE? file

DESCRIPTION:
    Return the identifying word for a specific file type (or NONE).

ARGUMENTS:
    file (file! url!)

FIND-ALL

USAGE:
    FIND-ALL 'series value body

DESCRIPTION:
    Find all occurances of the value within the series (allows modification).

ARGUMENTS:
    series -- Variable for block, string, or other series (word!)
    value
    body -- Evaluated for each occurance (block!)

FORMAT

USAGE:
    FORMAT rules values /pad p

DESCRIPTION:
    Format a string according to the format dialect.

ARGUMENTS:
    rules -- A block in the format dialect. E.g. [10 -10 #"-" 4]
    values

REFINEMENTS:
    /pad
        p

FOUND?

USAGE:
    FOUND? value

DESCRIPTION:
    Returns TRUE if value is not NONE.

ARGUMENTS:
    value

FUNC

USAGE:
    FUNC spec body

DESCRIPTION:
    Defines a user function with given spec and body.

ARGUMENTS:
    spec -- Help string (opt) followed by arg words (and opt type and string) (block!)
    body -- The body block of the function (block!)

FUNCO

USAGE:
    FUNCO spec body

DESCRIPTION:
    Non-copying function constructor (optimized for boot).

ARGUMENTS:
    spec -- Help string (opt) followed by arg words (and opt type and string) (block!)
    body -- The body block of the function (block!)

FUNCT

USAGE:
    FUNCT spec body /with object /extern words

DESCRIPTION:
    Defines a function with all set-words as locals.

ARGUMENTS:
    spec -- Help string (opt) followed by arg words (and opt type and string) (block!)
    body -- The body block of the function (block!)

REFINEMENTS:
    /with -- Define or use a persistent object (self)
        object -- The object or spec (object! block! map!)
    /extern
        words -- These words are not local (block!)

FUNCTION

USAGE:
    FUNCTION spec vars body

DESCRIPTION:
    Defines a user function with local words.

ARGUMENTS:
    spec -- Optional help info followed by arg words (and optional type and string) (block!)
    vars -- List of words that are local to the function (block!)
    body -- The body block of the function (block!)

HAS

USAGE:
    HAS vars body

DESCRIPTION:
    A shortcut to define a function that has local variables but no arguments.

ARGUMENTS:
    vars -- List of words that are local to the function (block!)
    body -- The body block of the function (block!)

HELP

USAGE:
    HELP 'word /doc

DESCRIPTION:
    Prints information about words and values.

ARGUMENTS:
    word (any-type!)

REFINEMENTS:
    /doc -- Open web browser to related documentation.

IMPORT

USAGE:
    IMPORT module /version ver /check sum /no-share /no-lib /no-user

DESCRIPTION:
    Imports a module; locate, load, make, and setup its bindings.

ARGUMENTS:
    module (word! file! url! string! binary! module! block!)

REFINEMENTS:
    /version
        ver -- Module must be this version or greater (tuple!)
    /check
        sum -- Match checksum (must be set in header) (binary!)
    /no-share -- Force module to use its own non-shared global namespace
    /no-lib -- Don't export to the runtime library (lib)
    /no-user -- Don't export to the user context

IN-DIR

USAGE:
    IN-DIR dir block

DESCRIPTION:
    Evaluate a block while in a directory.

ARGUMENTS:
    dir -- Directory to change to (changed back after) (file!)
    block -- Block to evaluate (block!)

INFO?

USAGE:
    INFO? target

DESCRIPTION:
    Returns an info object about a file or url.

ARGUMENTS:
    target (file! url!)

INPUT

USAGE:
    INPUT 

DESCRIPTION:
    Inputs a string from the console. New-line character is removed.

INTERN

USAGE:
    INTERN data

DESCRIPTION:
    Imports (internalize) words and their values from the lib into the user context.

ARGUMENTS:
    data -- Word or block of words to be added (deeply) (block! any-word!)

JOIN

USAGE:
    JOIN value rest

DESCRIPTION:
    Concatenates values.

ARGUMENTS:
    value -- Base value
    rest -- Value or block of values

LAST?

USAGE:
    LAST? series

DESCRIPTION:
    Returns TRUE if the series length is 1.

ARGUMENTS:
    series (series! port! map! tuple! bitset! object! gob! any-word!)

LAUNCH

USAGE:
    LAUNCH script /args arg /wait

DESCRIPTION:
    Runs a script as a separate process; return immediately.

ARGUMENTS:
    script -- The name of the script (file! string! none!)

REFINEMENTS:
    /args
        arg -- Arguments to the script (string! block! none!)
    /wait -- Wait for the process to terminate

LICENSE

USAGE:
    LICENSE 

DESCRIPTION:
    Prints the REBOL/core license agreement.

LIST-DIR

USAGE:
    LIST-DIR 'path /l /f /d /r /i indent

DESCRIPTION:
    Print contents of a directory (ls).

ARGUMENTS:
    path -- Accepts %file, :variables, and just words (as dirs) (file! word! path! string! unset!)

REFINEMENTS:
    /l -- Line of info format
    /f -- Files only
    /d -- Dirs only
    /r -- Recursive
    /i
        indent

LOAD

USAGE:
    LOAD source /header /all /type ftype /next

DESCRIPTION:
    Loads code or data from a file, URL, string, or binary.

ARGUMENTS:
    source -- Source or block of sources (file! url! string! binary! block!)

REFINEMENTS:
    /header -- Result includes REBOL header object (preempts /all)
    /all -- Load all values (does not evaluate REBOL header)
    /type -- Override default file-type; use NONE to always load as code
        ftype -- E.g. text, markup, jpeg, unbound, etc. (word! none!)
    /next -- Removed - use TRANSCODE instead

LOAD-GUI

USAGE:
    LOAD-GUI 

DESCRIPTION:
    Download current GUI module from web. (Temporary)

LOUD-PRINT

USAGE:
    LOUD-PRINT data

DESCRIPTION:
    Prints during boot when verbose.

ARGUMENTS:
    data

LS

USAGE:
    LS 'path /l /f /d /r /i indent

DESCRIPTION:
    Print contents of a directory (ls).

ARGUMENTS:
    path -- Accepts %file, :variables, and just words (as dirs) (file! word! path! string! unset!)

REFINEMENTS:
    /l -- Line of info format
    /f -- Files only
    /d -- Dirs only
    /r -- Recursive
    /i
        indent

MAKE-BANNER

USAGE:
    MAKE-BANNER fmt

DESCRIPTION:
    Build startup banner.

ARGUMENTS:
    fmt

MAKE-DIR

USAGE:
    MAKE-DIR path /deep

DESCRIPTION:
    Creates the specified directory. No error if already exists.

ARGUMENTS:
    path (file! url!)

REFINEMENTS:
    /deep -- Create subdirectories too

MAP

USAGE:
    MAP val

DESCRIPTION:
    Make a map value (hashed associative block).

ARGUMENTS:
    val

MAXIMUM-OF

USAGE:
    MAXIMUM-OF series /skip size

DESCRIPTION:
    Finds the largest value in a series

ARGUMENTS:
    series -- Series to search (series!)

REFINEMENTS:
    /skip -- Treat the series as records of fixed size
        size (integer!)

MINIMUM-OF

USAGE:
    MINIMUM-OF series /skip size

DESCRIPTION:
    Finds the smallest value in a series

ARGUMENTS:
    series -- Series to search (series!)

REFINEMENTS:
    /skip -- Treat the series as records of fixed size
        size (integer!)

MKDIR

USAGE:
    MKDIR path /deep

DESCRIPTION:
    Creates the specified directory. No error if already exists.

ARGUMENTS:
    path (file! url!)

REFINEMENTS:
    /deep -- Create subdirectories too

MOD

USAGE:
    MOD a b

DESCRIPTION:
    Compute a nonnegative remainder of A divided by B.

ARGUMENTS:
    a (number! money! time!)
    b -- Must be nonzero. (number! money! time!)

MODIFIED?

USAGE:
    MODIFIED? target

DESCRIPTION:
    Returns the last modified date of a file.

ARGUMENTS:
    target (file! url!)

MODULE

USAGE:
    MODULE spec body /mixin words

DESCRIPTION:
    Creates a module. Spec and body modified.

ARGUMENTS:
    spec -- The header block of the module (block!)
    body -- The body block of the module (block!)

REFINEMENTS:
    /mixin -- Mix in words from other modules
        words -- Words collected into an object (object!)

MODULO

USAGE:
    MODULO a b

DESCRIPTION:
    Wrapper for MOD that handles errors like REMAINDER. Negligible values (compared to A and B) are rounded to zero.

ARGUMENTS:
    a (number! money! time!)
    b -- Absolute value will be used (number! money! time!)

MOLD64

USAGE:
    MOLD64 data

DESCRIPTION:
    Temporary function to mold binary base 64.

ARGUMENTS:
    data

MORE

USAGE:
    MORE 'file

DESCRIPTION:
    Print file (shell shortcut function).

ARGUMENTS:
    file -- Accepts %file and also just words (as file names) (file! word! path! string!)

MOVE

USAGE:
    MOVE source offset /part length /skip size /to

DESCRIPTION:
    Move a value or span of values in a series.

ARGUMENTS:
    source -- Source series (series!)
    offset -- Offset to move by, or index to move to (integer!)

REFINEMENTS:
    /part -- Move part of a series
        length -- The length of the part to move (integer!)
    /skip -- Treat the series as records of fixed size
        size -- Size of each record (integer!)
    /to -- Move to an index relative to the head of the series

NUMBER?

USAGE:
    NUMBER? value

DESCRIPTION:
    Return TRUE if value is a number (integer or decimal).

ARGUMENTS:
    value (any-type!)

OBJECT

USAGE:
    OBJECT blk

DESCRIPTION:
    Defines a unique object.

ARGUMENTS:
    blk -- Object words and values. (block!)

OFFSET?

USAGE:
    OFFSET? series1 series2

DESCRIPTION:
    Returns the offset between two series positions.

ARGUMENTS:
    series1 (series!)
    series2 (series!)

PENDING

USAGE:
    PENDING 

DESCRIPTION:
    (undocumented)

PRINTF

USAGE:
    PRINTF fmt val

DESCRIPTION:
    Formatted print.

ARGUMENTS:
    fmt -- Format
    val -- Value or block of values

PROBE

USAGE:
    PROBE value

DESCRIPTION:
    Debug print a molded value and returns that same value.

ARGUMENTS:
    value (any-type!)

QUOTE

USAGE:
    QUOTE :value

DESCRIPTION:
    Returns the value passed to it without evaluation.

ARGUMENTS:
    :value (any-type!)

REFORM

USAGE:
    REFORM value

DESCRIPTION:
    Forms a reduced block and returns a string.

ARGUMENTS:
    value -- Value to reduce and form

REJOIN

USAGE:
    REJOIN block

DESCRIPTION:
    Reduces and joins a block of values.

ARGUMENTS:
    block -- Values to reduce and join (block!)

REMOLD

USAGE:
    REMOLD value /only /all /flat

DESCRIPTION:
    Reduces and converts a value to a REBOL-readable string.

ARGUMENTS:
    value -- The value to reduce and mold

REFINEMENTS:
    /only -- For a block value, mold only its contents, no outer []
    /all -- Mold in serialized format
    /flat -- No indentation

REPEND

USAGE:
    REPEND series value /part length /only /dup count

DESCRIPTION:
    Appends a reduced value to a series and returns the series head.

ARGUMENTS:
    series -- Series at point to insert (series! port! map! gob! object! bitset!)
    value -- The value to insert

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! series! pair!)
    /only -- Inserts a series as a series
    /dup -- Duplicates the insert a specified number of times
        count (number! pair!)

REPLACE

USAGE:
    REPLACE target search replace /all /case /tail

DESCRIPTION:
    Replaces a search value with the replace value within the target series.

ARGUMENTS:
    target -- Series that is being modified (series!)
    search -- Value to be replaced (converted if necessary)
    replace -- Value to replace with (called each time if a function)

REFINEMENTS:
    /all -- Replace all occurrences
    /case -- Case-sensitive replacement
    /tail -- Return target after the last replacement position

REWORD

USAGE:
    REWORD source values /escape char /into output

DESCRIPTION:
    Substitutes values into a template string, returning a new string.

ARGUMENTS:
    source -- Template series (or string with escape sequences) (any-string!)
    values -- Pairs of values and replacements (will be called if functions) (map! object! block!)

REFINEMENTS:
    /escape -- Choose your own escape char (no escape for block templates)
        char -- Use this escape char (default $) (char! any-string!)
    /into -- Insert into a buffer instead (returns position after insert)
        output -- The buffer series (modified) (any-string!)

SAVE

USAGE:
    SAVE where value /header header-data /all /length /compress method

DESCRIPTION:
    Saves a value, block, or other data to a file, URL, binary, or string.

ARGUMENTS:
    where -- Where to save (suffix determines encoding) (file! url! binary! string! none!)
    value -- Value(s) to save

REFINEMENTS:
    /header -- Provide a REBOL header block (or output non-code datatypes)
        header-data -- Header block, object, or TRUE (header is in value) (block! object! logic!)
    /all -- Save in serialized format
    /length -- Save the length of the script content in the header
    /compress -- Save in a compressed format or not
        method -- true = compressed, false = not, 'script = encoded string (logic! word!)

SAY-BROWSER

USAGE:
    SAY-BROWSER 

DESCRIPTION:
    (undocumented)

SCALAR?

USAGE:
    SCALAR? value

DESCRIPTION:
    Return TRUE if value is any type of scalar.

ARGUMENTS:
    value (any-type!)

SCRIPT?

USAGE:
    SCRIPT? source

DESCRIPTION:
    Checks file, url, or string for a valid script header.

ARGUMENTS:
    source (file! url! binary! string!)

SECURE

USAGE:
    SECURE 'd

DESCRIPTION:
    (undocumented)

ARGUMENTS:
    d

SERIES?

USAGE:
    SERIES? value

DESCRIPTION:
    Return TRUE if value is any type of series.

ARGUMENTS:
    value (any-type!)

SIGN?

USAGE:
    SIGN? number

DESCRIPTION:
    Returns sign of number as 1, 0, or -1 (to use as multiplier).

ARGUMENTS:
    number (number! money! time!)

SINGLE?

USAGE:
    SINGLE? series

DESCRIPTION:
    Returns TRUE if the series length is 1.

ARGUMENTS:
    series (series! port! map! tuple! bitset! object! gob! any-word!)

SIZE?

USAGE:
    SIZE? target

DESCRIPTION:
    Returns the size of a file.

ARGUMENTS:
    target (file! url!)

SOURCE

USAGE:
    SOURCE 'word

DESCRIPTION:
    Prints the source code for a word.

ARGUMENTS:
    word (word! path!)

SPEC-OF

USAGE:
    SPEC-OF value

DESCRIPTION:
    Returns a copy of the spec of a function or module

ARGUMENTS:
    value

SPEED?

USAGE:
    SPEED? 

DESCRIPTION:
    Ballpark speed benchmark.

SPLIT

USAGE:
    SPLIT series dlm /into

DESCRIPTION:
    Split a series into pieces; fixed or variable size, fixed number, or at delimiters

ARGUMENTS:
    series -- The series to split (series!)
    dlm -- Split size, delimiter(s), or rule(s). (block! integer! char! bitset! any-string!)

REFINEMENTS:
    /into -- If dlm is an integer, split into n pieces, rather than pieces of length n.

SPLIT-PATH

USAGE:
    SPLIT-PATH target

DESCRIPTION:
    Splits and returns directory path and file as a block.

ARGUMENTS:
    target (file! url! string!)

SUFFIX?

USAGE:
    SUFFIX? path

DESCRIPTION:
    Return the file suffix of a filename or url. Else, NONE.

ARGUMENTS:
    path (file! url! string!)

T

USAGE:
    T 

DESCRIPTION:
    (undocumented)

TASK

USAGE:
    TASK spec body

DESCRIPTION:
    Creates a task.

ARGUMENTS:
    spec -- Name or spec block (block!)
    body -- The body block of the task (block!)

TITLE-OF

USAGE:
    TITLE-OF value

DESCRIPTION:
    Returns a copy of the title of a function

ARGUMENTS:
    value

TO-BINARY

USAGE:
    TO-BINARY value

DESCRIPTION:
    Converts to binary! value.

ARGUMENTS:
    value

TO-BITSET

USAGE:
    TO-BITSET value

DESCRIPTION:
    Converts to bitset! value.

ARGUMENTS:
    value

TO-BLOCK

USAGE:
    TO-BLOCK value

DESCRIPTION:
    Converts to block! value.

ARGUMENTS:
    value

TO-CHAR

USAGE:
    TO-CHAR value

DESCRIPTION:
    Converts to char! value.

ARGUMENTS:
    value

TO-CLOSURE

USAGE:
    TO-CLOSURE value

DESCRIPTION:
    Converts to closure! value.

ARGUMENTS:
    value

TO-COMMAND

USAGE:
    TO-COMMAND value

DESCRIPTION:
    Converts to command! value.

ARGUMENTS:
    value

TO-DATATYPE

USAGE:
    TO-DATATYPE value

DESCRIPTION:
    Converts to datatype! value.

ARGUMENTS:
    value

TO-DATE

USAGE:
    TO-DATE value

DESCRIPTION:
    Converts to date! value.

ARGUMENTS:
    value

TO-DECIMAL

USAGE:
    TO-DECIMAL value

DESCRIPTION:
    Converts to decimal! value.

ARGUMENTS:
    value

TO-EMAIL

USAGE:
    TO-EMAIL value

DESCRIPTION:
    Converts to email! value.

ARGUMENTS:
    value

TO-ERROR

USAGE:
    TO-ERROR value

DESCRIPTION:
    Converts to error! value.

ARGUMENTS:
    value

TO-EVENT

USAGE:
    TO-EVENT value

DESCRIPTION:
    Converts to event! value.

ARGUMENTS:
    value

TO-FILE

USAGE:
    TO-FILE value

DESCRIPTION:
    Converts to file! value.

ARGUMENTS:
    value

TO-FUNCTION

USAGE:
    TO-FUNCTION value

DESCRIPTION:
    Converts to function! value.

ARGUMENTS:
    value

TO-GET-PATH

USAGE:
    TO-GET-PATH value

DESCRIPTION:
    Converts to get-path! value.

ARGUMENTS:
    value

TO-GET-WORD

USAGE:
    TO-GET-WORD value

DESCRIPTION:
    Converts to get-word! value.

ARGUMENTS:
    value

TO-GOB

USAGE:
    TO-GOB value

DESCRIPTION:
    Converts to gob! value.

ARGUMENTS:
    value

TO-IMAGE

USAGE:
    TO-IMAGE value

DESCRIPTION:
    Converts to image! value.

ARGUMENTS:
    value

TO-INTEGER

USAGE:
    TO-INTEGER value

DESCRIPTION:
    Converts to integer! value.

ARGUMENTS:
    value

TO-ISSUE

USAGE:
    TO-ISSUE value

DESCRIPTION:
    Converts to issue! value.

ARGUMENTS:
    value

TO-LIT-PATH

USAGE:
    TO-LIT-PATH value

DESCRIPTION:
    Converts to lit-path! value.

ARGUMENTS:
    value

TO-LIT-WORD

USAGE:
    TO-LIT-WORD value

DESCRIPTION:
    Converts to lit-word! value.

ARGUMENTS:
    value

TO-LOGIC

USAGE:
    TO-LOGIC value

DESCRIPTION:
    Converts to logic! value.

ARGUMENTS:
    value

TO-MAP

USAGE:
    TO-MAP value

DESCRIPTION:
    Converts to map! value.

ARGUMENTS:
    value

TO-MODULE

USAGE:
    TO-MODULE value

DESCRIPTION:
    Converts to module! value.

ARGUMENTS:
    value

TO-MONEY

USAGE:
    TO-MONEY value

DESCRIPTION:
    Converts to money! value.

ARGUMENTS:
    value

TO-OBJECT

USAGE:
    TO-OBJECT value

DESCRIPTION:
    Converts to object! value.

ARGUMENTS:
    value

TO-PAIR

USAGE:
    TO-PAIR value

DESCRIPTION:
    Converts to pair! value.

ARGUMENTS:
    value

TO-PAREN

USAGE:
    TO-PAREN value

DESCRIPTION:
    Converts to paren! value.

ARGUMENTS:
    value

TO-PATH

USAGE:
    TO-PATH value

DESCRIPTION:
    Converts to path! value.

ARGUMENTS:
    value

TO-PERCENT

USAGE:
    TO-PERCENT value

DESCRIPTION:
    Converts to percent! value.

ARGUMENTS:
    value

TO-PORT

USAGE:
    TO-PORT value

DESCRIPTION:
    Converts to port! value.

ARGUMENTS:
    value

TO-REFINEMENT

USAGE:
    TO-REFINEMENT value

DESCRIPTION:
    Converts to refinement! value.

ARGUMENTS:
    value

TO-RELATIVE-FILE

USAGE:
    TO-RELATIVE-FILE file /no-copy /as-rebol /as-local

DESCRIPTION:
    Returns the relative portion of a file if in a subdirectory, or the original if not.

ARGUMENTS:
    file -- File to check (local if string!) (file! string!)

REFINEMENTS:
    /no-copy -- Don't copy, just reference
    /as-rebol -- Convert to REBOL-style filename if not
    /as-local -- Convert to local-style filename if not

TO-SET-PATH

USAGE:
    TO-SET-PATH value

DESCRIPTION:
    Converts to set-path! value.

ARGUMENTS:
    value

TO-SET-WORD

USAGE:
    TO-SET-WORD value

DESCRIPTION:
    Converts to set-word! value.

ARGUMENTS:
    value

TO-STRING

USAGE:
    TO-STRING value

DESCRIPTION:
    Converts to string! value.

ARGUMENTS:
    value

TO-TAG

USAGE:
    TO-TAG value

DESCRIPTION:
    Converts to tag! value.

ARGUMENTS:
    value

TO-TIME

USAGE:
    TO-TIME value

DESCRIPTION:
    Converts to time! value.

ARGUMENTS:
    value

TO-TUPLE

USAGE:
    TO-TUPLE value

DESCRIPTION:
    Converts to tuple! value.

ARGUMENTS:
    value

TO-TYPESET

USAGE:
    TO-TYPESET value

DESCRIPTION:
    Converts to typeset! value.

ARGUMENTS:
    value

TO-URL

USAGE:
    TO-URL value

DESCRIPTION:
    Converts to url! value.

ARGUMENTS:
    value

TO-VECTOR

USAGE:
    TO-VECTOR value

DESCRIPTION:
    Converts to vector! value.

ARGUMENTS:
    value

TO-WORD

USAGE:
    TO-WORD value

DESCRIPTION:
    Converts to word! value.

ARGUMENTS:
    value

TRUE?

USAGE:
    TRUE? val

DESCRIPTION:
    Returns true if an expression can be used as true.

ARGUMENTS:
    val

TYPES-OF

USAGE:
    TYPES-OF value

DESCRIPTION:
    Returns a copy of the types of a function

ARGUMENTS:
    value

UNDIRIZE

USAGE:
    UNDIRIZE path

DESCRIPTION:
    Returns a copy of the path with any trailing "/" removed.

ARGUMENTS:
    path (file! string! url!)

UPGRADE

USAGE:
    UPGRADE 

DESCRIPTION:
    Check for newer versions (update REBOL).

USAGE

USAGE:
    USAGE 

DESCRIPTION:
    Prints command-line arguments.

USE

USAGE:
    USE vars body

DESCRIPTION:
    Defines words local to a block.

ARGUMENTS:
    vars -- Local word(s) to the block (block! word!)
    body -- Block to evaluate (block!)

VALUES-OF

USAGE:
    VALUES-OF value

DESCRIPTION:
    Returns a copy of the values of a object or module

ARGUMENTS:
    value

WHAT

USAGE:
    WHAT 'name /args

DESCRIPTION:
    Prints a list of known functions.

ARGUMENTS:
    name -- Optional module name (word! lit-word! unset!)

REFINEMENTS:
    /args -- Show arguments not titles

WHY?

USAGE:
    WHY? 'err

DESCRIPTION:
    Explain the last error in more detail.

ARGUMENTS:
    err -- Optional error value (word! path! error! none! unset!)

WORDS-OF

USAGE:
    WORDS-OF value

DESCRIPTION:
    Returns a copy of the words of a function, object, or module

ARGUMENTS:
    value

Natives

!

USAGE:
    ! value

DESCRIPTION:
    Returns the logic complement.

ARGUMENTS:
    value -- (Only FALSE and NONE return TRUE)

++

USAGE:
    ++ 'word

DESCRIPTION:
    Increment an integer or series index. Return its prior value.

ARGUMENTS:
    word -- Integer or series variable (word!)

--

USAGE:
    -- 'word

DESCRIPTION:
    Decrement an integer or series index. Return its prior value.

ARGUMENTS:
    word -- Integer or series variable (word!)

---

USAGE:
    --- value

DESCRIPTION:
    Ignores the argument value and returns nothing.

ARGUMENTS:
    value -- A string, block, file, etc.

ACTION

USAGE:
    ACTION spec

DESCRIPTION:
    Creates datatype action (for internal usage only).

ARGUMENTS:
    spec

AJOIN

USAGE:
    AJOIN block

DESCRIPTION:
    Reduces and joins a block of values into a new string.

ARGUMENTS:
    block (block!)

ALIAS

USAGE:
    ALIAS word name

DESCRIPTION:
    Creates an alternate spelling for a word.

ARGUMENTS:
    word -- Word to alias (word!)
    name -- Name of alias (string!)

ALL

USAGE:
    ALL block

DESCRIPTION:
    Shortcut AND. Evaluates and returns at the first FALSE or NONE.

ARGUMENTS:
    block -- Block of expressions (block!)

ALSO

USAGE:
    ALSO value1 value2

DESCRIPTION:
    Returns the first value, but also evaluates the second.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

ANY

USAGE:
    ANY block

DESCRIPTION:
    Shortcut OR. Evaluates and returns the first value that is not FALSE or NONE.

ARGUMENTS:
    block -- Block of expressions (block!)

APPLY

USAGE:
    APPLY func block /only

DESCRIPTION:
    Apply a function to a reduced block of arguments.

ARGUMENTS:
    func -- Function value to apply (any-function!)
    block -- Block of args, reduced first (unless /only) (block!)

REFINEMENTS:
    /only -- Use arg values as-is, do not reduce the block

ARCCOSINE

USAGE:
    ARCCOSINE value /radians

DESCRIPTION:
    Returns the trigonometric arccosine (in degrees by default).

ARGUMENTS:
    value (number!)

REFINEMENTS:
    /radians -- Returns result in radians

ARCSINE

USAGE:
    ARCSINE value /radians

DESCRIPTION:
    Returns the trigonometric arcsine (in degrees by default).

ARGUMENTS:
    value (number!)

REFINEMENTS:
    /radians -- Returns result in radians

ARCTANGENT

USAGE:
    ARCTANGENT value /radians

DESCRIPTION:
    Returns the trigonometric arctangent (in degrees by default).

ARGUMENTS:
    value (number!)

REFINEMENTS:
    /radians -- Returns result in radians

AS-PAIR

USAGE:
    AS-PAIR x y

DESCRIPTION:
    Combine X and Y values into a pair.

ARGUMENTS:
    x (number!)
    y (number!)

ASCII?

USAGE:
    ASCII? value

DESCRIPTION:
    Returns TRUE if value or string is in ASCII character range (below 128).

ARGUMENTS:
    value (any-string! char! integer!)

ASSERT

USAGE:
    ASSERT conditions /type

DESCRIPTION:
    Assert that condition is true, else throw an assertion error.

ARGUMENTS:
    conditions (block!)

REFINEMENTS:
    /type -- Safely check datatypes of variables (words and paths)

ATTEMPT

USAGE:
    ATTEMPT block

DESCRIPTION:
    Tries to evaluate a block and returns result or NONE on error.

ARGUMENTS:
    block (block!)

BIND

USAGE:
    BIND word context /copy /only /new /set

DESCRIPTION:
    Binds words to the specified context. (Modifies)

ARGUMENTS:
    word -- A block of words or single word (returned) (block! any-word!)
    context -- A reference to the target context (any-word! any-object!)

REFINEMENTS:
    /copy -- Deep copy block before binding it
    /only -- Bind only first block (not deep)
    /new -- Add to context any new words found
    /set -- Add to context any new set-words found

BIND?

USAGE:
    BIND? word

DESCRIPTION:
    Returns the context in which a word is bound.

ARGUMENTS:
    word (any-word!)

BREAK

USAGE:
    BREAK /return value

DESCRIPTION:
    Breaks out of a loop, while, until, repeat, foreach, etc.

REFINEMENTS:
    /return -- Forces the loop function to return a value
        value (any-type!)

BROWSE

USAGE:
    BROWSE url

DESCRIPTION:
    Open web browser to a URL or local file.

ARGUMENTS:
    url (url! file! none!)

CALL

USAGE:
    CALL command /wait

DESCRIPTION:
    Run another program; return immediately.

ARGUMENTS:
    command -- An OS-local command line, quoted as necessary (string!)

REFINEMENTS:
    /wait -- Wait for command to terminate before returning

CASE

USAGE:
    CASE block /all

DESCRIPTION:
    Evaluates each condition, and when true, evaluates what follows it.

ARGUMENTS:
    block -- Block of cases (conditions followed by values) (block!)

REFINEMENTS:
    /all -- Evaluate all cases (do not stop at first true case)

CATCH

USAGE:
    CATCH block /name word /quit

DESCRIPTION:
    Catches a throw from a block and returns its value.

ARGUMENTS:
    block -- Block to evaluate (block!)

REFINEMENTS:
    /name -- Catches a named throw
        word -- One or more names (word! block!)
    /quit -- Special catch for QUIT native

CHANGE-DIR

USAGE:
    CHANGE-DIR path

DESCRIPTION:
    Changes the current directory path.

ARGUMENTS:
    path (file!)

CHECK

USAGE:
    CHECK val

DESCRIPTION:
    Temporary series debug check

ARGUMENTS:
    val (series!)

CHECKSUM

USAGE:
    CHECKSUM data /part length /tcp /secure /hash size /method word /key key-value

DESCRIPTION:
    Computes a checksum, CRC, or hash.

ARGUMENTS:
    data -- Bytes to checksum (binary!)

REFINEMENTS:
    /part
        length -- Length of data
    /tcp -- Returns an Internet TCP 16-bit checksum
    /secure -- Returns a cryptographically secure checksum
    /hash -- Returns a hash value
        size -- Size of the hash table (integer!)
    /method -- Method to use
        word -- Methods: SHA1 MD5 CRC32 (word!)
    /key -- Returns keyed HMAC value
        key-value -- Key to use (any-string!)

COLLECT-WORDS

USAGE:
    COLLECT-WORDS block /deep /set /ignore words

DESCRIPTION:
    Collect unique words used in a block (used for context construction).

ARGUMENTS:
    block (block!)

REFINEMENTS:
    /deep -- Include nested blocks
    /set -- Only include set-words
    /ignore -- Ignore prior words
        words -- Words to ignore (any-object! block! none!)

COMMENT

USAGE:
    COMMENT value

DESCRIPTION:
    Ignores the argument value and returns nothing.

ARGUMENTS:
    value -- A string, block, file, etc.

COMPOSE

USAGE:
    COMPOSE value /deep /only /into out

DESCRIPTION:
    Evaluates a block of expressions, only evaluating parens, and returns a block.

ARGUMENTS:
    value -- Block to compose

REFINEMENTS:
    /deep -- Compose nested blocks
    /only -- Insert a block as a single value (not the contents of the block)
    /into -- Output results into a block with no intermediate storage
        out (any-block!)

COMPRESS

USAGE:
    COMPRESS data /part length /gzip

DESCRIPTION:
    Compresses a string series and returns it.

ARGUMENTS:
    data -- If string, it will be UTF8 encoded (binary! string!)

REFINEMENTS:
    /part
        length -- Length of data (elements)
    /gzip -- Use GZIP checksum

CONSTRUCT

USAGE:
    CONSTRUCT block /with object /only

DESCRIPTION:
    Creates an object with scant (safe) evaluation.

ARGUMENTS:
    block -- Specification (block! string! binary!)

REFINEMENTS:
    /with -- Default object
        object (object!)
    /only -- Values are kept as-is

CONTINUE

USAGE:
    CONTINUE 

DESCRIPTION:
    Throws control back to top of loop.

COSINE

USAGE:
    COSINE value /radians

DESCRIPTION:
    Returns the trigonometric cosine.

ARGUMENTS:
    value -- In degrees by default (number!)

REFINEMENTS:
    /radians -- Value is specified in radians

DEBASE

USAGE:
    DEBASE value /base base-value

DESCRIPTION:
    Decodes binary-coded string (BASE-64 default) to binary value.

ARGUMENTS:
    value -- The string to decode (binary! string!)

REFINEMENTS:
    /base -- Binary base to use
        base-value -- The base to convert from: 64, 16, or 2 (integer!)

DECLOAK

USAGE:
    DECLOAK data key /with

DESCRIPTION:
    Decodes a binary string scrambled previously by encloak. (Modifies)

ARGUMENTS:
    data -- Binary to descramble (binary!)
    key -- Encryption key or pass phrase (string! binary! integer!)

REFINEMENTS:
    /with -- Use a string! key as-is (do not generate hash)

DECOMPRESS

USAGE:
    DECOMPRESS data /part length /gzip /limit size

DESCRIPTION:
    Decompresses data. Result is binary.

ARGUMENTS:
    data -- Data to decompress (binary!)

REFINEMENTS:
    /part
        length -- Length of compressed data (must match end marker)
    /gzip -- Use GZIP checksum
    /limit
        size -- Error out if result is larger than this

DEHEX

USAGE:
    DEHEX value

DESCRIPTION:
    Converts URL-style hex encoded (%xx) strings.

ARGUMENTS:
    value -- The string to dehex (any-string!)

DELECT

USAGE:
    DELECT dialect input output /in where /all

DESCRIPTION:
    Parses a common form of dialects. Returns updated input block.

ARGUMENTS:
    dialect -- Describes the words and datatypes of the dialect (object!)
    input -- Input stream to parse (block!)
    output -- Resulting values, ordered as defined (block!)

REFINEMENTS:
    /in -- Search for var words in specific objects (contexts)
        where -- Block of objects to search (non objects ignored) (block!)
    /all -- Parse entire block, not just one command at a time

DELINE

USAGE:
    DELINE string /lines

DESCRIPTION:
    Converts string terminators to standard format, e.g. CRLF to LF. (Modifies)

ARGUMENTS:
    string (any-string!)

REFINEMENTS:
    /lines -- Return block of lines (works for LF, CR, CR-LF endings) (does not modify)

DETAB

USAGE:
    DETAB string /size number

DESCRIPTION:
    Converts tabs in a string to spaces (default tab size 4). (Modifies)

ARGUMENTS:
    string (any-string!)

REFINEMENTS:
    /size -- Specifies the number of spaces per tab
        number (integer!)

DIFFERENCE

USAGE:
    DIFFERENCE set1 set2 /case /skip size

DESCRIPTION:
    Returns the difference of two data sets or dates.

ARGUMENTS:
    set1 -- First data set (block! string! binary! bitset! date! typeset!)
    set2 -- Second data set (block! string! binary! bitset! date! typeset!)

REFINEMENTS:
    /case -- Uses case-sensitive comparison
    /skip -- Treat the series as records of fixed size
        size (integer!)

DO

USAGE:
    DO value /args arg /next var

DESCRIPTION:
    Evaluates a block, file, URL, function, word, or any other value.

ARGUMENTS:
    value -- Normally a file name, URL, or block (any-type!)

REFINEMENTS:
    /args -- If value is a script, this will set its system/script/args
        arg -- Args passed to a script (normally a string)
    /next -- Do next expression only, return it, update block variable
        var -- Variable updated with new block position (word!)

DO-CALLBACK

USAGE:
    DO-CALLBACK event

DESCRIPTION:
    Internal function to process callback events.

ARGUMENTS:
    event -- Callback event (event!)

DO-CODEC

USAGE:
    DO-CODEC handle action data

DESCRIPTION:
    Evaluate a CODEC function to encode or decode media types.

ARGUMENTS:
    handle -- Internal link to codec (handle!)
    action -- Decode, encode, identify (word!)
    data (binary! image!)

DO-COMMANDS

USAGE:
    DO-COMMANDS commands

DESCRIPTION:
    Evaluate a block of extension module command functions (special evaluation rules.)

ARGUMENTS:
    commands -- Series of commands and their arguments (block!)

DS

USAGE:
    DS 

DESCRIPTION:
    Temporary stack debug

DUMP

USAGE:
    DUMP v

DESCRIPTION:
    Temporary debug dump

ARGUMENTS:
    v

ECHO

USAGE:
    ECHO target

DESCRIPTION:
    Copies console output to a file.

ARGUMENTS:
    target (file! none! logic!)

EIGHTH

USAGE:
    EIGHTH value

DESCRIPTION:
    Returns the eighth value of a series.

ARGUMENTS:
    value

EITHER

USAGE:
    EITHER condition true-block false-block

DESCRIPTION:
    If condition is TRUE, evaluates the first block, else evaluates the second.

ARGUMENTS:
    condition
    true-block (block!)
    false-block (block!)

ENBASE

USAGE:
    ENBASE value /base base-value

DESCRIPTION:
    Encodes a string into a binary-coded string (BASE-64 default).

ARGUMENTS:
    value -- If string, will be UTF8 encoded (binary! string!)

REFINEMENTS:
    /base -- Binary base to use
        base-value -- The base to convert to: 64, 16, or 2 (integer!)

ENCLOAK

USAGE:
    ENCLOAK data key /with

DESCRIPTION:
    Scrambles a binary string based on a key. (Modifies)

ARGUMENTS:
    data -- Binary to scramble (binary!)
    key -- Encryption key or pass phrase (string! binary! integer!)

REFINEMENTS:
    /with -- Use a string! key as-is (do not generate hash)

ENLINE

USAGE:
    ENLINE series

DESCRIPTION:
    Converts standard string terminators to current OS format, e.g. LF to CRLF. (Modifies)

ARGUMENTS:
    series (any-string! block!)

ENTAB

USAGE:
    ENTAB string /size number

DESCRIPTION:
    Converts spaces in a string to tabs (default tab size 4). (Modifies)

ARGUMENTS:
    string (any-string!)

REFINEMENTS:
    /size -- Specifies the number of spaces per tab
        number (integer!)

EQUAL?

USAGE:
    EQUAL? value1 value2

DESCRIPTION:
    Returns TRUE if the values are equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

EQUIV?

USAGE:
    EQUIV? value1 value2

DESCRIPTION:
    Returns TRUE if the values are equivalent.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

EVOKE

USAGE:
    EVOKE chant

DESCRIPTION:
    Special guru meditations. (Not for beginners.)

ARGUMENTS:
    chant -- Single or block of words ('? to list) (word! block! integer!)

EXCLUDE

USAGE:
    EXCLUDE set1 set2 /case /skip size

DESCRIPTION:
    Returns the first data set less the second data set.

ARGUMENTS:
    set1 -- First data set (block! string! binary! bitset! typeset!)
    set2 -- Second data set (block! string! binary! bitset! typeset!)

REFINEMENTS:
    /case -- Uses case-sensitive comparison
    /skip -- Treat the series as records of fixed size
        size (integer!)

EXIT

USAGE:
    EXIT 

DESCRIPTION:
    Exits a function, returning no value.

EXP

USAGE:
    EXP power

DESCRIPTION:
    Raises E (natural number) to the power specified.

ARGUMENTS:
    power (number!)

FIFTH

USAGE:
    FIFTH value

DESCRIPTION:
    Returns the fifth value of a series.

ARGUMENTS:
    value

FIND-SCRIPT

USAGE:
    FIND-SCRIPT script

DESCRIPTION:
    Find a script header within a binary string. Returns starting position.

ARGUMENTS:
    script (binary!)

FIRST

USAGE:
    FIRST value

DESCRIPTION:
    Returns the first value of a series.

ARGUMENTS:
    value

FIRST+

USAGE:
    FIRST+ 'word

DESCRIPTION:
    Return FIRST of series, and increment the series index.

ARGUMENTS:
    word -- Word must be a series (word!)

FOR

USAGE:
    FOR 'word start end bump body

DESCRIPTION:
    Evaluate a block over a range of values. (See also: REPEAT)

ARGUMENTS:
    word -- Variable to hold current value (word!)
    start -- Starting value (series! number!)
    end -- Ending value (series! number!)
    bump -- Amount to skip each time (number!)
    body -- Block to evaluate (block!)

FORALL

USAGE:
    FORALL 'word body

DESCRIPTION:
    Evaluates a block for every value in a series.

ARGUMENTS:
    word -- Word that refers to the series, set to each position in series (word!)
    body -- Block to evaluate each time (block!)

FOREACH

USAGE:
    FOREACH 'word data body

DESCRIPTION:
    Evaluates a block for each value(s) in a series.

ARGUMENTS:
    word -- Word or block of words to set each time (local) (word! block!)
    data -- The series to traverse (series! any-object! map! none!)
    body -- Block to evaluate each time (block!)

FOREVER

USAGE:
    FOREVER body

DESCRIPTION:
    Evaluates a block endlessly.

ARGUMENTS:
    body -- Block to evaluate each time (block!)

FORM

USAGE:
    FORM value

DESCRIPTION:
    Converts a value to a string.

ARGUMENTS:
    value -- The value to form (any-type!)

FORSKIP

USAGE:
    FORSKIP 'word size body

DESCRIPTION:
    Evaluates a block for periodic values in a series.

ARGUMENTS:
    word -- Word that refers to the series, set to each position in series (word!)
    size -- Number of positions to skip each time (integer! decimal!)
    body -- Block to evaluate each time (block!)

FOURTH

USAGE:
    FOURTH value

DESCRIPTION:
    Returns the fourth value of a series.

ARGUMENTS:
    value

GET

USAGE:
    GET word /any

DESCRIPTION:
    Gets the value of a word, path, or values of an object.

ARGUMENTS:
    word -- Word, path, object to get

REFINEMENTS:
    /any -- Allows word to have no value (be unset)

GET-ENV

USAGE:
    GET-ENV var

DESCRIPTION:
    Returns the value of an OS environment variable (for current process).

ARGUMENTS:
    var (any-string! any-word!)

GREATER-OR-EQUAL?

USAGE:
    GREATER-OR-EQUAL? value1 value2

DESCRIPTION:
    Returns TRUE if the first value is greater than or equal to the second value.

ARGUMENTS:
    value1
    value2

GREATER?

USAGE:
    GREATER? value1 value2

DESCRIPTION:
    Returns TRUE if the first value is greater than the second value.

ARGUMENTS:
    value1
    value2

HALT

USAGE:
    HALT 

DESCRIPTION:
    Stops evaluation and returns to the input prompt.

IF

USAGE:
    IF condition then-block /else else-block

DESCRIPTION:
    If condition is TRUE, evaluates the block.

ARGUMENTS:
    condition
    then-block (block!)

REFINEMENTS:
    /else -- If not true, evaluate this block
        else-block (block!)

IN

USAGE:
    IN object word

DESCRIPTION:
    Returns the word or block in the object's context.

ARGUMENTS:
    object (any-object! block!)
    word (any-word! block! paren!)

INTERSECT

USAGE:
    INTERSECT set1 set2 /case /skip size

DESCRIPTION:
    Returns the intersection of two data sets.

ARGUMENTS:
    set1 -- first set (block! string! binary! bitset! typeset!)
    set2 -- second set (block! string! binary! bitset! typeset!)

REFINEMENTS:
    /case -- Uses case-sensitive comparison
    /skip -- Treat the series as records of fixed size
        size (integer!)

INVALID-UTF?

USAGE:
    INVALID-UTF? data /utf num

DESCRIPTION:
    Checks for proper UTF encoding and returns NONE if correct or position where the error occurred.

ARGUMENTS:
    data (binary!)

REFINEMENTS:
    /utf -- Check encodings other than UTF-8
        num -- Bit size - positive for BE negative for LE (integer!)

LAST

USAGE:
    LAST value

DESCRIPTION:
    Returns the last value of a series.

ARGUMENTS:
    value (series! tuple! gob!)

LATIN1?

USAGE:
    LATIN1? value

DESCRIPTION:
    Returns TRUE if value or string is in Latin-1 character range (below 256).

ARGUMENTS:
    value (any-string! char! integer!)

LESSER-OR-EQUAL?

USAGE:
    LESSER-OR-EQUAL? value1 value2

DESCRIPTION:
    Returns TRUE if the first value is less than or equal to the second value.

ARGUMENTS:
    value1
    value2

LESSER?

USAGE:
    LESSER? value1 value2

DESCRIPTION:
    Returns TRUE if the first value is less than the second value.

ARGUMENTS:
    value1
    value2

LIMIT-USAGE

USAGE:
    LIMIT-USAGE field limit

DESCRIPTION:
    Set a usage limit only once (used for SECURE).

ARGUMENTS:
    field -- eval (count) or memory (bytes) (word!)
    limit (number!)

LIST-ENV

USAGE:
    LIST-ENV 

DESCRIPTION:
    Returns a map of OS environment variables (for current process).

LOAD-EXTENSION

USAGE:
    LOAD-EXTENSION name /dispatch function

DESCRIPTION:
    Low level extension module loader (for DLLs).

ARGUMENTS:
    name -- DLL file or UTF-8 source (file! binary!)

REFINEMENTS:
    /dispatch -- Specify native command dispatch (from hosted extensions)
        function -- Command dispatcher (native) (handle!)

LOG-10

USAGE:
    LOG-10 value

DESCRIPTION:
    Returns the base-10 logarithm.

ARGUMENTS:
    value (number!)

LOG-2

USAGE:
    LOG-2 value

DESCRIPTION:
    Return the base-2 logarithm.

ARGUMENTS:
    value (number!)

LOG-E

USAGE:
    LOG-E value

DESCRIPTION:
    Returns the base-E (natural number) logarithm.

ARGUMENTS:
    value (number!)

LOOP

USAGE:
    LOOP count block

DESCRIPTION:
    Evaluates a block a specified number of times.

ARGUMENTS:
    count -- Number of repetitions (number!)
    block -- Block to evaluate (block!)

LOWERCASE

USAGE:
    LOWERCASE string /part length

DESCRIPTION:
    Converts string of characters to lowercase. (Modifies)

ARGUMENTS:
    string (any-string! char!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! any-string!)

MAP-EACH

USAGE:
    MAP-EACH 'word data body

DESCRIPTION:
    Evaluates a block for each value(s) in a series and returns them as a block.

ARGUMENTS:
    word -- Word or block of words to set each time (local) (word! block!)
    data -- The series to traverse (block! vector!)
    body -- Block to evaluate each time (block!)

MAP-EVENT

USAGE:
    MAP-EVENT event

DESCRIPTION:
    Returns event with inner-most graphical object and coordinate.

ARGUMENTS:
    event (event!)

MAP-GOB-OFFSET

USAGE:
    MAP-GOB-OFFSET gob xy /reverse

DESCRIPTION:
    Translates a gob and offset to the deepest gob and offset in it, returned as a block.

ARGUMENTS:
    gob -- Starting object (gob!)
    xy -- Staring offset (pair!)

REFINEMENTS:
    /reverse -- Translate from deeper gob to top gob.

MAX

USAGE:
    MAX value1 value2

DESCRIPTION:
    Returns the greater of the two values.

ARGUMENTS:
    value1 (scalar! date! series!)
    value2 (scalar! date! series!)

MAXIMUM

USAGE:
    MAXIMUM value1 value2

DESCRIPTION:
    Returns the greater of the two values.

ARGUMENTS:
    value1 (scalar! date! series!)
    value2 (scalar! date! series!)

MIN

USAGE:
    MIN value1 value2

DESCRIPTION:
    Returns the lesser of the two values.

ARGUMENTS:
    value1 (scalar! date! series!)
    value2 (scalar! date! series!)

MINIMUM

USAGE:
    MINIMUM value1 value2

DESCRIPTION:
    Returns the lesser of the two values.

ARGUMENTS:
    value1 (scalar! date! series!)
    value2 (scalar! date! series!)

MOLD

USAGE:
    MOLD value /only /all /flat

DESCRIPTION:
    Converts a value to a REBOL-readable string.

ARGUMENTS:
    value -- The value to mold (any-type!)

REFINEMENTS:
    /only -- For a block value, mold only its contents, no outer []
    /all -- Mold in serialized format
    /flat -- No indentation

NATIVE

USAGE:
    NATIVE spec

DESCRIPTION:
    Creates native function (for internal usage only).

ARGUMENTS:
    spec

NEGATIVE?

USAGE:
    NEGATIVE? number

DESCRIPTION:
    Returns TRUE if the number is negative.

ARGUMENTS:
    number (number! money! time! pair!)

NEW-LINE

USAGE:
    NEW-LINE block value /all /skip size

DESCRIPTION:
    Sets or clears the new-line marker within a block. (Modifies)

ARGUMENTS:
    block -- Position in block to change marker (block!)
    value -- Set TRUE for newline

REFINEMENTS:
    /all -- Set/clear marker to end of block
    /skip -- Set/clear marker periodically to the end of the block
        size (integer!)

NEW-LINE?

USAGE:
    NEW-LINE? block

DESCRIPTION:
    Returns the state of the new-line marker within a block.

ARGUMENTS:
    block -- Position in block to check marker (block!)

NINTH

USAGE:
    NINTH value

DESCRIPTION:
    Returns the ninth value of a series.

ARGUMENTS:
    value

NOT

USAGE:
    NOT value

DESCRIPTION:
    Returns the logic complement.

ARGUMENTS:
    value -- (Only FALSE and NONE return TRUE)

NOT-EQUAL?

USAGE:
    NOT-EQUAL? value1 value2

DESCRIPTION:
    Returns TRUE if the values are not equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

NOT-EQUIV?

USAGE:
    NOT-EQUIV? value1 value2

DESCRIPTION:
    Returns TRUE if the values are not equivalent.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

NOW

USAGE:
    NOW /year /month /day /time /zone /date /weekday /yearday /precise /utc

DESCRIPTION:
    Returns local date and time.

REFINEMENTS:
    /year -- Returns year only
    /month -- Returns month only
    /day -- Returns day of the month only
    /time -- Returns time only
    /zone -- Returns time zone offset from UCT (GMT) only
    /date -- Returns date only
    /weekday -- Returns day of the week as integer (Monday is day 1)
    /yearday -- Returns day of the year (Julian)
    /precise -- Higher precision
    /utc -- Universal time (no zone)

PARSE

USAGE:
    PARSE input rules /all /case

DESCRIPTION:
    Parses a string or block series according to grammar rules.

ARGUMENTS:
    input -- Input series to parse (series!)
    rules -- Rules to parse by (none = ",;") (block! string! char! none!)

REFINEMENTS:
    /all -- For simple rules (not blocks) parse all chars including whitespace
    /case -- Uses case-sensitive comparison

POSITIVE?

USAGE:
    POSITIVE? number

DESCRIPTION:
    Returns TRUE if the value is positive.

ARGUMENTS:
    number (number! money! time! pair!)

PRIN

USAGE:
    PRIN value

DESCRIPTION:
    Outputs a value with no line break.

ARGUMENTS:
    value (any-type!)

PRINT

USAGE:
    PRINT value

DESCRIPTION:
    Outputs a value followed by a line break.

ARGUMENTS:
    value -- The value to print (any-type!)

PROTECT

USAGE:
    PROTECT value /deep /words /values /hide

DESCRIPTION:
    Protect a series or a variable from being modified.

ARGUMENTS:
    value (word! series! bitset! map! object! module!)

REFINEMENTS:
    /deep -- Protect all sub-series/objects as well
    /words -- Process list as words (and path words)
    /values -- Process list of values (implied GET)
    /hide -- Hide variables (avoid binding and lookup)

PWD

USAGE:
    PWD 

DESCRIPTION:
    Returns the current directory path.

Q

USAGE:
    Q /return value /now

DESCRIPTION:
    Stops evaluation and exits the interpreter.

REFINEMENTS:
    /return -- Returns a value (to prior script or command shell)
        value -- Note: use integers for command shell
    /now -- Quit immediately

QUIT

USAGE:
    QUIT /return value /now

DESCRIPTION:
    Stops evaluation and exits the interpreter.

REFINEMENTS:
    /return -- Returns a value (to prior script or command shell)
        value -- Note: use integers for command shell
    /now -- Quit immediately

RECYCLE

USAGE:
    RECYCLE /off /on /ballast size /torture

DESCRIPTION:
    Recycles unused memory.

REFINEMENTS:
    /off -- Disable auto-recycling
    /on -- Enable auto-recycling
    /ballast -- Trigger for auto-recycle (memory used)
        size (integer!)
    /torture -- Constant recycle (for internal debugging)

REDUCE

USAGE:
    REDUCE value /no-set /only words /into out

DESCRIPTION:
    Evaluates expressions and returns multiple results.

ARGUMENTS:
    value

REFINEMENTS:
    /no-set -- Keep set-words as-is. Do not set them.
    /only -- Only evaluate words and paths, not functions
        words -- Optional words that are not evaluated (keywords) (block! none!)
    /into -- Output results into a block with no intermediate storage
        out (any-block!)

REMOVE-EACH

USAGE:
    REMOVE-EACH 'word data body

DESCRIPTION:
    Removes values for each block that returns true. Returns remove count. (Modifies)

ARGUMENTS:
    word -- Word or block of words to set each time (local) (word! block!)
    data -- The series to traverse (series!)
    body -- Block to evaluate (return TRUE to remove) (block!)

REPEAT

USAGE:
    REPEAT 'word value body

DESCRIPTION:
    Evaluates a block a number of times or over a series.

ARGUMENTS:
    word -- Word to set each time (word!)
    value -- Maximum number or series to traverse (number! series! none!)
    body -- Block to evaluate each time (block!)

REQUEST-FILE

USAGE:
    REQUEST-FILE /save /multi /file name /title text /filter list

DESCRIPTION:
    Asks user to select a file and returns full file path (or block of paths).

REFINEMENTS:
    /save -- File save mode
    /multi -- Allows multiple file selection, returned as a block
    /file
        name -- Default file name or directory (file!)
    /title
        text -- Window title (string!)
    /filter
        list -- Block of filters (filter-name filter) (block!)

RESOLVE

USAGE:
    RESOLVE target source /only from /all /extend

DESCRIPTION:
    Copy context by setting values in the target from those in the source.

ARGUMENTS:
    target (any-object!)
    source (any-object!)

REFINEMENTS:
    /only
        from -- Only specific words (exports) or new words in target (index to tail) (block! integer!)
    /all -- Set all words, even those in the target that already have a value
    /extend -- Add source words to the target if necessary

RETURN

USAGE:
    RETURN value /redo

DESCRIPTION:
    Returns a value from a function.

ARGUMENTS:
    value (any-type!)

REFINEMENTS:
    /redo -- Upon return, re-evaluate the returned result. (Used for DO)

SAME?

USAGE:
    SAME? value1 value2

DESCRIPTION:
    Returns TRUE if the values are identical.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

SECOND

USAGE:
    SECOND value

DESCRIPTION:
    Returns the second value of a series.

ARGUMENTS:
    value

SELFLESS?

USAGE:
    SELFLESS? context

DESCRIPTION:
    Returns true if the context doesn't bind 'self.

ARGUMENTS:
    context -- A reference to the target context (any-word! any-object!)

SET

USAGE:
    SET word value /any /pad

DESCRIPTION:
    Sets a word, path, block of words, or object to specified value(s).

ARGUMENTS:
    word -- Word, block of words, path, or object to be set (any-word! any-path! block! object!)
    value -- Value or block of values (any-type!)

REFINEMENTS:
    /any -- Allows setting words to any value, including unset
    /pad -- For objects, if block is too short, remaining words are set to NONE

SET-SCHEME

USAGE:
    SET-SCHEME scheme

DESCRIPTION:
    Low-level port scheme actor initialization.

ARGUMENTS:
    scheme (object!)

SEVENTH

USAGE:
    SEVENTH value

DESCRIPTION:
    Returns the seventh value of a series.

ARGUMENTS:
    value

SHIFT

USAGE:
    SHIFT value bits /logical

DESCRIPTION:
    Shifts an integer left or right by a number of bits.

ARGUMENTS:
    value (integer!)
    bits -- Positive for left shift, negative for right shift (integer!)

REFINEMENTS:
    /logical -- Logical shift (sign bit ignored)

SINE

USAGE:
    SINE value /radians

DESCRIPTION:
    Returns the trigonometric sine.

ARGUMENTS:
    value -- In degrees by default (number!)

REFINEMENTS:
    /radians -- Value is specified in radians

SIXTH

USAGE:
    SIXTH value

DESCRIPTION:
    Returns the sixth value of a series.

ARGUMENTS:
    value

SQUARE-ROOT

USAGE:
    SQUARE-ROOT value

DESCRIPTION:
    Returns the square root of a number.

ARGUMENTS:
    value (number!)

STACK

USAGE:
    STACK offset /block /word /func /args /size /depth /limit

DESCRIPTION:
    Returns stack backtrace or other values.

ARGUMENTS:
    offset -- Relative backward offset (integer!)

REFINEMENTS:
    /block -- Block evaluation position
    /word -- Function or object name, if known
    /func -- Function value
    /args -- Block of args (may be modified)
    /size -- Current stack size (in value units)
    /depth -- Stack depth (frames)
    /limit -- Stack bounds (auto expanding)

STATS

USAGE:
    STATS /show /profile /timer /evals

DESCRIPTION:
    Provides status and statistics information about the interpreter.

REFINEMENTS:
    /show -- Print formatted results to console
    /profile -- Returns profiler object
    /timer -- High resolution time difference from start
    /evals -- Number of values evaluated by interpreter

STRICT-EQUAL?

USAGE:
    STRICT-EQUAL? value1 value2

DESCRIPTION:
    Returns TRUE if the values are strictly equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

STRICT-NOT-EQUAL?

USAGE:
    STRICT-NOT-EQUAL? value1 value2

DESCRIPTION:
    Returns TRUE if the values are not strictly equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

SWITCH

USAGE:
    SWITCH value cases /default case /all

DESCRIPTION:
    Selects a choice and evaluates the block that follows it.

ARGUMENTS:
    value -- Target value
    cases -- Block of cases to check (block!)

REFINEMENTS:
    /default
        case -- Default case if no others found
    /all -- Evaluate all matches (not just first one)

TANGENT

USAGE:
    TANGENT value /radians

DESCRIPTION:
    Returns the trigonometric tangent.

ARGUMENTS:
    value -- In degrees by default (number!)

REFINEMENTS:
    /radians -- Value is specified in radians

TENTH

USAGE:
    TENTH value

DESCRIPTION:
    Returns the tenth value of a series.

ARGUMENTS:
    value

THIRD

USAGE:
    THIRD value

DESCRIPTION:
    Returns the third value of a series.

ARGUMENTS:
    value

THROW

USAGE:
    THROW value /name word

DESCRIPTION:
    Throws control back to a previous catch.

ARGUMENTS:
    value -- Value returned from catch (any-type!)

REFINEMENTS:
    /name -- Throws to a named catch
        word (word!)

TO-HEX

USAGE:
    TO-HEX value /size len

DESCRIPTION:
    Converts a numeric value to a hex issue! datatype (with leading #).

ARGUMENTS:
    value -- Value to be converted (integer! tuple!)

REFINEMENTS:
    /size -- Specify number of hex digits in result
        len (integer!)

TO-LOCAL-FILE

USAGE:
    TO-LOCAL-FILE path /full

DESCRIPTION:
    Converts a REBOL file path to the local system file path.

ARGUMENTS:
    path (file! string!)

REFINEMENTS:
    /full -- Prepends current dir for full path (for relative paths only)

TO-REBOL-FILE

USAGE:
    TO-REBOL-FILE path

DESCRIPTION:
    Converts a local system file path to a REBOL file path.

ARGUMENTS:
    path (file! string!)

TRACE

USAGE:
    TRACE mode /back /function

DESCRIPTION:
    Enables and disables evaluation tracing and backtrace.

ARGUMENTS:
    mode (integer! logic!)

REFINEMENTS:
    /back -- Set mode ON to enable or integer for lines to display
    /function -- Traces functions only (less output)

TRANSCODE

USAGE:
    TRANSCODE source /next /only /error

DESCRIPTION:
    Translates UTF-8 binary source to values. Returns [value binary].

ARGUMENTS:
    source -- Must be Unicode UTF-8 encoded (binary!)

REFINEMENTS:
    /next -- Translate next complete value (blocks as single value)
    /only -- Translate only a single value (blocks dissected)
    /error -- Do not throw errors - return error object as value

TRY

USAGE:
    TRY block /except code

DESCRIPTION:
    Tries to DO a block and returns its value or an error.

ARGUMENTS:
    block (block!)

REFINEMENTS:
    /except -- On exception, evaluate this code block
        code (block! any-function!)

TYPE?

USAGE:
    TYPE? value /word

DESCRIPTION:
    Returns a value's datatype.

ARGUMENTS:
    value (any-type!)

REFINEMENTS:
    /word -- Returns the datatype as a word

UNBIND

USAGE:
    UNBIND word /deep

DESCRIPTION:
    Unbinds words from context. (Modifies)

ARGUMENTS:
    word -- A block of words or single word (returned) (block! any-word!)

REFINEMENTS:
    /deep -- Include nested blocks

UNION

USAGE:
    UNION set1 set2 /case /skip size

DESCRIPTION:
    Returns the union of two data sets.

ARGUMENTS:
    set1 -- first set (block! string! binary! bitset! typeset!)
    set2 -- second set (block! string! binary! bitset! typeset!)

REFINEMENTS:
    /case -- Use case-sensitive comparison
    /skip -- Treat the series as records of fixed size
        size (integer!)

UNIQUE

USAGE:
    UNIQUE set1 /case /skip size

DESCRIPTION:
    Returns the data set with duplicates removed.

ARGUMENTS:
    set1 (block! string! binary! bitset! typeset!)

REFINEMENTS:
    /case -- Use case-sensitive comparison (except bitsets)
    /skip -- Treat the series as records of fixed size
        size (integer!)

UNLESS

USAGE:
    UNLESS condition block

DESCRIPTION:
    Evaluates the block if condition is not TRUE.

ARGUMENTS:
    condition
    block (block!)

UNPROTECT

USAGE:
    UNPROTECT value /deep /words /values

DESCRIPTION:
    Unprotect a series or a variable (it can again be modified).

ARGUMENTS:
    value (word! series! bitset! map! object! module!)

REFINEMENTS:
    /deep -- Protect all sub-series as well
    /words -- Block is a list of words
    /values -- Process list of values (implied GET)

UNSET

USAGE:
    UNSET word

DESCRIPTION:
    Unsets the value of a word.

ARGUMENTS:
    word -- Word or block of words (word! block!)

UNTIL

USAGE:
    UNTIL block

DESCRIPTION:
    Evaluates a block until it is TRUE. 

ARGUMENTS:
    block (block!)

UPPERCASE

USAGE:
    UPPERCASE string /part length

DESCRIPTION:
    Converts string of characters to uppercase. (Modifies)

ARGUMENTS:
    string (any-string! char!)

REFINEMENTS:
    /part -- Limits to a given length or position
        length (number! any-string!)

UTF?

USAGE:
    UTF? data

DESCRIPTION:
    Returns UTF BOM (byte order marker) encoding: positive for BE, negative for LE.

ARGUMENTS:
    data (binary!)

VALUE?

USAGE:
    VALUE? value

DESCRIPTION:
    Returns TRUE if the word has been set.

ARGUMENTS:
    value

WAIT

USAGE:
    WAIT value /all

DESCRIPTION:
    Waits for a duration, port, or both.

ARGUMENTS:
    value (number! time! port! block! none!)

REFINEMENTS:
    /all -- Returns all in a block

WAKE-UP

USAGE:
    WAKE-UP port event

DESCRIPTION:
    Awake and update a port with event.

ARGUMENTS:
    port (port!)
    event (event!)

WHAT-DIR

USAGE:
    WHAT-DIR 

DESCRIPTION:
    Returns the current directory path.

WHILE

USAGE:
    WHILE cond-block body-block

DESCRIPTION:
    While a condition block is TRUE, evaluates another block.

ARGUMENTS:
    cond-block (block!)
    body-block (block!)

ZERO?

USAGE:
    ZERO? value

DESCRIPTION:
    Returns TRUE if the value is zero (for its datatype).

ARGUMENTS:
    value

Ops

!=

USAGE:
    value1 != value2

DESCRIPTION:
    Returns TRUE if the values are not equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

!==

USAGE:
    value1 !== value2

DESCRIPTION:
    Returns TRUE if the values are not strictly equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

&

USAGE:
    value1 & value2

DESCRIPTION:
    Returns the first value ANDed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

*

USAGE:
    value1 * value2

DESCRIPTION:
    Returns the first value multiplied by the second.

ARGUMENTS:
    value1 (scalar!)
    value2 (scalar!)

**

USAGE:
    number ** exponent

DESCRIPTION:
    Returns the first number raised to the second number.

ARGUMENTS:
    number (number!)
    exponent (number!)

+

USAGE:
    value1 + value2

DESCRIPTION:
    Returns the result of adding two values.

ARGUMENTS:
    value1 (scalar! date!)
    value2

-

USAGE:
    value1 - value2

DESCRIPTION:
    Returns the second value subtracted from the first.

ARGUMENTS:
    value1 (scalar! date!)
    value2 (scalar! date!)

/

USAGE:
    value1 / value2

DESCRIPTION:
    Returns the first value divided by the second.

ARGUMENTS:
    value1 (scalar!)
    value2 (scalar!)

//

USAGE:
    value1 // value2

DESCRIPTION:
    Returns the remainder of first value divided by second.

ARGUMENTS:
    value1 (scalar!)
    value2 (scalar!)

<

USAGE:
    value1 < value2

DESCRIPTION:
    Returns TRUE if the first value is less than the second value.

ARGUMENTS:
    value1
    value2

<=

USAGE:
    value1 <= value2

DESCRIPTION:
    Returns TRUE if the first value is less than or equal to the second value.

ARGUMENTS:
    value1
    value2

<>

USAGE:
    value1 <> value2

DESCRIPTION:
    Returns TRUE if the values are not equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

=

USAGE:
    value1 = value2

DESCRIPTION:
    Returns TRUE if the values are equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

==

USAGE:
    value1 == value2

DESCRIPTION:
    Returns TRUE if the values are strictly equal.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

=?

USAGE:
    value1 =? value2

DESCRIPTION:
    Returns TRUE if the values are identical.

ARGUMENTS:
    value1 (any-type!)
    value2 (any-type!)

>

USAGE:
    value1 > value2

DESCRIPTION:
    Returns TRUE if the first value is greater than the second value.

ARGUMENTS:
    value1
    value2

>=

USAGE:
    value1 >= value2

DESCRIPTION:
    Returns TRUE if the first value is greater than or equal to the second value.

ARGUMENTS:
    value1
    value2

AND

USAGE:
    value1 and value2

DESCRIPTION:
    Returns the first value ANDed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

OR

USAGE:
    value1 or value2

DESCRIPTION:
    Returns the first value ORed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

XOR

USAGE:
    value1 xor value2

DESCRIPTION:
    Returns the first value exclusive ORed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

|

USAGE:
    value1 | value2

DESCRIPTION:
    Returns the first value ORed with the second.

ARGUMENTS:
    value1 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)
    value2 (logic! integer! char! tuple! binary! bitset! typeset! datatype!)

System Object

PRODUCT

PRODUCT is a word of value: core

VERSION

VERSION is a tuple of value: 2.100.110.2.5

BUILD

BUILD is a date of value: 4-Nov-2010/17:48:49

PLATFORM

PLATFORM is a block of value: [
    Macintosh osx-x86
]

LICENSE

LICENSE is a string of value: {Alpha prototype version. For testing only. Use at your own risk. Do not distribute.}

CATALOG

CATALOG is an object of value: 
   datatypes       block!    length: 56 
   actions         block!    length: 56 
   natives         block!    length: 160 
   errors          object!   [Throw Note Syntax Script Math Access Command... 
   reflectors      block!    length: 6 
   boot-flags      block!    length: 18 

CONTEXTS

CONTEXTS is an object of value: 
   root            none!     none 
   sys             object!   [native action do* make-module* boot-banner b... 
   lib             object!   [end! unset! none! logic! integer! decimal! p... 
   user            object!   [system pwd cd rebol do md2-what make functio... 

STATE

STATE is an object of value: 
   note            string!   "contains protected hidden fields" 
   policies        object!   [file net eval memory secure protect debug en... 
   last-error      none!     none 

MODULES

MODULES is a block of value: [...

CODECS

CODECS is an object of value: 
   text            object!   [entry title name type suffixes] 
   markup          object!   [entry title name type suffixes] 
   bmp             object!   [entry title name type suffixes] 
   gif             object!   [entry title name type suffixes] 
   png             object!   [entry title name type suffixes] 
   jpeg            object!   [entry title name type suffixes] 

DIALECTS

DIALECTS is an object of value: 
   secure          none!     none 
   draw            none!     none 
   effect          none!     none 
   text            none!     none 
   rebcode         none!     none 

SCHEMES

SCHEMES is an object of value: 
   system          object!   [name title spec info actor awake init] 
   console         object!   [name title spec info actor awake] 
   callback        object!   [name title spec info actor awake] 
   file            object!   [name title spec info actor awake init] 
   dir             object!   [name title spec info actor awake init] 
   event           object!   [name title spec info actor awake] 
   dns             object!   [name title spec info actor awake] 
   tcp             object!   [name title spec info actor awake] 
   clipboard       object!   [name title spec info actor awake] 
   http            object!   [name title spec info actor awake] 

PORTS

PORTS is an object of value: 
   wait-list       block!    length: 0 
   input           port!     ["Console Access" [scheme: 'console]] 
   output          none!     none 
   echo            none!     none 
   system          port!     ["System Port" [scheme: 'system]] 
   callback        port!     ["Callback Event Functions" [scheme: 'callbac... 

LOCALE

LOCALE is an object of value: 
   language        none!     none 
   language*       none!     none 
   locale          none!     none 
   locale*         none!     none 
   months          block!    length: 12 
   days            block!    length: 7 

OPTIONS

OPTIONS is an object of value: 
   boot            file!     %/Users/Ash/REBOL/r3-a110-2-5 
   home            file!     %/Users/Ash/REBOL/ 
   path            file!     %/Users/Ash/ 
   flags           block!    length: 1 
   script          none!     none 
   args            none!     none 
   do-arg          none!     none 
   import          none!     none 
   debug           none!     none 
   secure          none!     none 
   version         none!     none 
   boot-level      word!     full 
   quiet           logic!    false 
   binary-base     integer!  16 
   decimal-digits  integer!  15 
   module-paths    block!    length: 1 
   default-suffix  file!     %.reb 
   file-types      block!    length: 25 
   result-types    typeset!  [none! logic! integer! decimal! percent! mone... 

SCRIPT

SCRIPT is an object of value: 
   title           string!   "Untitled" 
   header          object!   [title name type version date file author nee... 
   parent          object!   [title header parent path args] 
   path            file!     %/Users/Ash/REBOL/ 
   args            none!     none 

STANDARD

STANDARD is an object of value: 
   error           object!   [code type id arg1 arg2 arg3 near where] 
   script          object!   [title header parent path args] 
   header          object!   [title name type version date file author nee... 
   scheme          object!   [name title spec info actor awake] 
   port            object!   [spec scheme actor awake state data locals] 
   port-spec-head  object!   [title scheme ref path] 
   port-spec-net   object!   [title scheme ref path host port-id] 
   file-info       object!   [name size date type] 
   net-info        object!   [local-ip local-port remote-ip remote-port] 
   extension       object!   [lib-base lib-file lib-boot command cmd-index... 
   stats           object!   [timer evals eval-natives eval-functions seri... 
   type-spec       object!   [title type] 
   utype           object!   [add subtract multiply divide remainder power... 
   font            none!     none 
   para            none!     none 

VIEW

VIEW is an object of value: 
   screen-gob      none!     none 
   handler         none!     none 
   event-port      none!     none 
   metrics         object!   [screen-size border-size border-fixed title-s... 
   event-types     block!    length: 39 
   event-keys      block!    length: 22