Return type:
True or false when applied to switch expressions, a sink when applied to sink expresions.
switch expression (and | &) switch expression
sink expression & sink expression


The & operator is overloaded: it can be used either as a Boolean and operator, or as a tee operator on sinks.

When applied to arguments of switch type, the & operator is synonymous with the operator and: it returns true if all of its arguments evaluate to true, otherwise the result is false.

When applied to markup sink and string sink expressions, the & operator returns a string sink. If all arguments are of markup sink type, the result type will be a markup sink as well. The sink returned by the operator acts as a "tee" connector: any data output into it will be replicated and distributed to all component sinks that were given as arguments of &.

Usage example:

  using output as #error & file "error.log"
     output "An error occurred."