List of R3 datatypes and their definitions

Carl Sassenrath, CTO
REBOL Technologies
2-Apr-2007 1:17 GMT

Article #0076
Main page || Index || Prior Article [0075] || Next Article [0077] || 16 Comments || Send feedback

Here is a list of current REBOL 3.0 datatypes and their definitions.

This list was generated by REBOL itself.

How? In REBOL 3, datatype values include a "spec" that is useful for functions like help and REBOL documentation generating scripts. The spec object is returned by calling the new spec-of function on the datatype. (I should note that the datatype spec objects are created dynamically, so they do not waste memory during normal operation.)

So now, when you type:

help datatype!

you get:

action!      datatype-relative native function (standardized polymorphic function) 
binary!      string series of bytes 
bitset!      set of bit flags 
block!       series of values 
char!        8bit and 16bit character 
closure!     function with persistent local values (indefinite extent) 
datatype!    datatype value 
date!        day, month, year, time of day, and timezone 
decimal!     64bit floating point number (IEEE standard) 
dictionary!  hashed name-value pairs 
email!       email address 
end!         internal marker for end of block 
error!       error value 
event!       user interface event (efficiently sized) 
file!        file name or path 
frame!       internal context frame 
function!    interpreted function (user-defined or mezzanine) 
get-path!    the value of a path 
get-word!    the value of a word (variable) 
gob!         graphical object 
handle!      arbitrary internal object or value 
image!       RGB image with alpha channel 
integer!     64 bit integer 
issue!       identifying string or script marker 
library!     external library reference 
lit-path!    literal path value 
lit-word!    literal word value 
logic!       boolean true or false 
module!      loadable context of code and data 
money!       arbitrary precision decimal numbers with optional denomination 
native!      direct CPU evaluated function 
none!        no value represented 
object!      context of names with values 
op!          infix operator (special evaluation exception) 
pair!        two dimensional point or size 
paren!       automatically evaluating block 
path!        refinement path for functions, objects, files, etc. 
percent!     special form of decimals (used mainly for layout) 
port!        external series, an I/O channel 
rebcode!     virtual machine function 
refinement!  variation of meaning or location 
routine!     external library function 
set-path!    definition of a path's value 
set-word!    definition of a word's value 
string!      string series of characters 
struct!      native structure definition 
tag!         markup string (HTML or XML) 
task!        evaluation environment 
time!        time of day or duration 
tuple!       sequence of small integers (used for colors, versions, IP addresses) 
typeset!     set of datatypes 
unicode!     string of unicoded characters 
unset!       no value returned or set 
url!         uniform resource locater or identifier 
utype!       user defined datatype 
vector!      multidimensional directly mapped arrays (of same datatype) 
word!        word (symbol or variable)

That list is a lot more useful than what you get in REBOL 2!


  1. This is not the final list of datatypes.
  2. Not the final comment text for datatypes. Feel free to suggest improvements.
  3. The pseudo-datatypes are no longer listed. That's because they are no longer datatypes. They are defined now as typesets -- collections of datatypes.


Updated 13-Jun-2024 - Edit - Copyright REBOL Technologies -