package mem type CellKind int const ( CellKindEmpty CellKind = iota CellKindString CellKindArray CellKindEnv CellKindOutlet CellKindForbidden ) func (c CellKind) String() string { switch c { case CellKindEmpty: return "empty" case CellKindString: return "string" case CellKindArray: return "array" case CellKindEnv: return "env" case CellKindOutlet: return "outlet" case CellKindForbidden: return "forbidden" default: return "unknown" } } type cell struct { kind CellKind refs int data CellData } type CellData interface { DropCell(Mem) }