It is defined with the same characteristics as either true_type or false_type, depending on whether T is a type returned from bind or not.

The bind function uses this trait to determine whether the type of each of its arguments is a subexpression (i.e., whether it is itself a type returned by bind). Users can specialize this template for types that are to be treated as bind subexpressions.