Mimics
Inactive cells
Active cells
Specs
Inactive cells (details)
attributeNames = []
kind = "IokeGround Struct"
structInstance? = false
Active cells (details)
==(other)

nil

method(other, 
  (Struct ===(cell(:other)) &&(
      attributes ==(other attributes))))
===(other)

nil

method(other, 
  if(self same?(
      #<IokeGround Struct:0>), 
    Reflector other:mimics?(cell(:other), 
      #<IokeGround Struct:0>), 
    bind(rescue(Condition Error, fn(c, false)), 
      self ==(
        other))))
[](index)

nil

method(index, 
  ix = if(index mimics?(Number), 
      attributeNames [](index), 
      index) 
  @ cell(ix))
[]=(index, value)

nil

method(index, value, 
  ix = if(index mimics?(Number), 
      attributeNames [](index), 
      index) 
  @ cell(ix) = value)
asText()

nil

method(
  if(structInstance?, 
    "(#{attributeNames map(name, "#{name}: #{@ cell(name)}") join(", ")})", 
    "Struct(#{attributeNames join(", ")})"))
attributes()

nil

method(
  attributeNames fold({}, d, x, d [](x) = @ cell(x) 
    d) 
  )
create(+values, +:keywordValues)

nil

method(+values, +:keywordValues, 
  @ call(*(values), *(keywordValues)) 
  )
hash()

nil

method(
  attributes hash)
inspect()

nil

method(
  if(structInstance?, 
    "(#{attributeNames map(name, "#{name}: #{@ cell(name) inspect}") join(", ")})", 
    "Struct(#{attributeNames join(", ")})"))
internal:createDerived(orig, attributeNames, newValues, newKeywordValues)

nil

method(orig, attributeNames, newValues, newKeywordValues, 
  res = orig mimic 
  (newValues zipped(attributeNames) mapped(reverse) +(
      newKeywordValues seq)) each(vv, 
    res cell(vv first) = vv second) 
  res 
  )
internal:createInitial(val, attributeNames, attributes, attributesWithDefaultValues, values, keywordValues)

nil

method(val, attributeNames, attributes, attributesWithDefaultValues, values, keywordValues, 
  result = fn(+(newVals), +:(newKeywordVals), 
      Struct internal:createDerived(result, attributeNames, newVals, newKeywordVals)) 
  result prependMimic!(val) 
  result structInstance? = true 
  (attributesWithDefaultValues seq +(
      attributes zipped(values)) +(
      keywordValues seq)) each(vv, 
    result cell(vv first) = vv second) 
  result)
notice()

nil

method(
  if(structInstance?, 
    "(#{attributeNames map(name, "#{name}: #{@ cell(name) notice}") join(", ")})", 
    "Struct(#{attributeNames join(", ")})"))
seq()

nil

method(
  attributeNames mapped(name, name =>(@ cell(name))) 
  )
valuesAt(+indices)

nil

method(+indices, 
  indices map(ix, 
    self [](ix)))