Pretty Good Sum Type  1.0.0
Class Hierarchy
This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Cpgs::constructor< class >A type to model a sum constructor
 Cstd::false_type [external]
 Cpgs::fold_left< detail::or_helper, std::false_type, Ts... >
 Cpgs::or_< Ts >Parameter pack disjunction
 Cpgs::is_recursive_wrapper< T >Primary template of a metafunction to classify a type as recursive_wrapper<> or not
 Cpgs::index_of< T, Ts >A metafunction to compute the index I of a type T in a sequence Ts
 Cstd::integral_constant< bool,!B::value > [external]
 Cpgs::negation< B >
 Cpgs::is_callable< F, Args >Metafunction to determine if an instance of a type F can be applied to a tuple of parameters with types determined by the template parameter pack Args
 Cstd::logic_error [external]
 Cpgs::invalid_sum_type_accessException type raised on an invalid access into a recursive_union<>
 Cpgs::otherwiseA utility suitable for use as a wildcard in a pattern match
 Cpgs::overload_tag< T >A type to model an overload
 Cpgs::range<... >Compile time sequence of integers
 Cpgs::recursive_union<... >recursive union<> primary template
 Cpgs::recursive_union< T, Ts... >Partial specialization
 Cpgs::recursive_union< Ts... >
 Cpgs::recursive_union<>Full specialization
 Cpgs::recursive_union_dereference< is_recursive_wrapper, T, Ts >Dereference the value field in a recursive_union<>. This case handles values that are not recursive_wrapper instances
 Cpgs::recursive_union_dereference< true, T, Ts... >Dereference the value field in a recursive_union<>. This specialization handles values that are recursive_wrapper instances
 Cpgs::recursive_union_indexer< I, T, Ts >The purpose of this type is to walk a recursive_union<> and return the value field of the Ith union in the chain
 Cpgs::recursive_union_indexer< 0, T, Ts... >The purpose of this type is to walk a recursive_union<> and return the value field of the Ith union in the chain
 Cpgs::recursive_union_visitor< R, T, Ts >Primary template
 Cpgs::recursive_union_visitor< void, range< I, Is... >, recursive_wrapper< T >, Ts... >Partial specialization
 Cpgs::recursive_union_visitor< R, range< I, Is... >, recursive_wrapper< T >, Ts... >Partial specialization
 Cpgs::recursive_union_visitor< R, range< I, Is... >, T, Ts... >Partial specialization
 Cpgs::recursive_union_visitor< R, range<>, Ts... >Partial specialization
 Cpgs::recursive_union_visitor< void, range< I, Is... >, T, Ts... >Partial specialization
 Cpgs::recursive_union_visitor< void, range<>, Ts... >Partial specialization
 Cpgs::recursive_union_visitor< void, T, Ts... >Partial specialization for void return type
 Cpgs::recursive_wrapper< T >Types
 Cpgs::recursive_wrapper_unwrap< T >Primary template of a metafunction to compute the type contained by a recursive_wrapper<>
 Cpgs::recursive_wrapper_unwrap< recursive_wrapper< T > >Partial specialization for types that are recursive wrappers
 Cpgs::sum_type< Ts >A type modeling "sums with constructors" as used in functional programming
 Cstd::true_type [external]
 Cpgs::fold_left< detail::and_helper, std::true_type, Ts... >
 Cpgs::and_< Ts >Parameter pack conjunction
 Cpgs::is_recursive_wrapper< recursive_wrapper< T > >Partial specialization for types that are recursive wrappers
 Ctype
 Cpgs::fold_left< F, F::template apply< Acc, T >::type, Ts... >
 Cpgs::fold_left< F, Acc, T, Ts... >Fold left, partial specialization matching non-empty packs
 CAcc
 Cpgs::fold_left< F, Acc, Ts >Fold left, primary template