template <typename P>
concept PointNDConcept : ValueType<P> {
template <size_t D> struct axis { typename coord_type; };
static const size_t num_dimensions;
template <size_t D> const axis<D>::coord_type& axis_value() const;
template <size_t D> axis<D>::coord_type& axis_value();
};