Contains definitions of the proto::term<>, proto::list1<>, proto::list2<>, etc. class templates. A type sequence, for use as the 2nd parameter to the proto::expr<> and proto::basic_expr<> class templates. A type sequence with one element, for use as the 2nd parameter to the proto::expr<> and proto::basic_expr<> class templates. The sequence element represents the value of a terminal. = 0; const long T proto::list1<>, proto::list2<>, etc., are type sequences for use as the 2nd parameter to the proto::expr<> or proto::basic_expr<> class templates. Type sequences, for use as the 2nd parameter to the proto::expr<> or proto::basic_expr<> class template. The types in the sequence correspond to the children of a node in an expression tree. There is no type literally named "listN"; rather, there is a set of types named proto::list1<>, proto::list2<>, etc. = N; const long For each M in [0,N) ArgM