@@ -64,6 +64,12 @@ any::operator char() const {
6464 RETURN_VALUE(tag_t::Character, c,)
6565}
6666
67+any::operator size_t() const {
68+ const auto sz = cast<int>(*this);
69+ assert(sz >= 0);
70+ return static_cast<size_t>(sz);
71+}
72+
6773any::operator cstring() const {
6874 const any& variant = unthunkVariant(*this);
6975 if (variant.tag == tag_t::StringLiteral) {
@@ -89,20 +95,11 @@ auto any::unthunkVariant(const any& a) -> const any& {
8995 return *variant;
9096}
9197
92−auto any::operator[](const symbol_t key) const -> const any& {
93− return PureScript::map::get(key, cast<map<unknown_size>>(*this));
94−}
95−
9698auto any::operator[](const size_t rhs) const -> const any& {
9799 const auto& xs = cast<array>(*this);
98100 return xs[rhs];
99101}
100102
101−auto any::operator[](const any& rhs) const -> const any& {
102− const auto& xs = cast<array>(*this);
103− return xs[cast<int>(rhs)];
104−}
105−
106103auto any::size() const -> size_t {
107104 return cast<array>(*this).size();
108105}