Hidden and Scoped Types

Types that can only be instantiated by the execution engine

A hidden type is one that may only be instantiated by the execution engine, and cannot be used in a declaration within a WDL file.

A scoped type is one that can only be defined by the execution engine within a specific scope. A scoped type may also be hidden.

The following sections enumerate the hidden and scoped types that are available in the current version of WDL. In WDL 2.0, Object will also become a hidden type.

§Union (Hidden Type)

Union is a hidden type that is used for a value that may have any one of several concrete types. A Union value must always be coerced to a concrete type. The Union type is used in the following contexts:

  • It is the type of the special None value.
  • It is the return type of some standard library functions, such as read_json.
  • It is the type of some requirements and reserved hints attributes.

§hints, input, and output (Scoped Types)

The hints section has three scoped types that may be instantiated by the user within that scope.

§task (Hidden Scoped Type)

The task type is a hidden type that is scoped to the command and output sections.