@@ -64,6 +64,12 @@ any::operator char() const {
64 RETURN_VALUE(tag_t::Character, c,)
64 RETURN_VALUE(tag_t::Character, c,)
67+any::operator size_t() const {
68+ const auto sz = cast<int>(*this);
70+ return static_cast<size_t>(sz);
67any::operator cstring() const {
73any::operator cstring() const {
68 const any& variant = unthunkVariant(*this);
74 const any& variant = unthunkVariant(*this);
69 if (variant.tag == tag_t::StringLiteral) {
75 if (variant.tag == tag_t::StringLiteral) {
@@ -89,20 +95,11 @@ auto any::unthunkVariant(const any& a) -> const any& {
89 return *variant;
95 return *variant;
92−auto any::operator[](const symbol_t key) const -> const any& {
93− return PureScript::map::get(key, cast<map<unknown_size>>(*this));
96auto any::operator[](const size_t rhs) const -> const any& {
98auto any::operator[](const size_t rhs) const -> const any& {
97 const auto& xs = cast<array>(*this);
99 const auto& xs = cast<array>(*this);
98 return xs[rhs];
100 return xs[rhs];
101−auto any::operator[](const any& rhs) const -> const any& {
102− const auto& xs = cast<array>(*this);
103− return xs[cast<int>(rhs)];
106auto any::size() const -> size_t {
103auto any::size() const -> size_t {
107 return cast<array>(*this).size();
104 return cast<array>(*this).size();