base.ListView[E:imm,mut,read]

mut .tryGet(i: imm base.Nat): mut base.Opt[E], // from base.List/1
read .tryGet(i: imm base.Nat): mut base.Opt[read/imm E], // from base.List/1
imm .tryGet(i: imm base.Nat): mut base.Opt[imm E], // from base.List/1
mut .iter: mut base.iter.Iter[E] -> …, // from base.List/1
read .iter: mut base.iter.Iter[read/imm E] -> …, // from base.List/1
imm .iter: mut base.iter.Iter[imm E] -> …, // from base.List/1
read .isEmpty: imm base.Bool, // from base.Collection/0
read .tryExpose(list: mut base.List[E], i: imm base.Nat): mut base.Opt[E],
read .inner: read base.List[E],
mut .add(e: E): imm base.Void, // from base.List/1
mut .get(i: imm base.Nat): E, // from base.List/1
read .get(i: imm base.Nat): read/imm E, // from base.List/1
imm .get(i: imm base.Nat): imm E, // from base.List/1
mut .addAll(other: mut base.List[E]): imm base.Void -> …, // from base.List/1
mut ==(eq: read base.F[E,E,imm base.Bool], other: mut base.List[E]): imm base.Bool -> …, // from base.List/1
read ==(eq: read base.F[read/imm E,read/imm E,imm base.Bool], other: read base.List[E]): imm base.Bool -> …, // from base.List/1
imm ==(eq: imm base.F[imm E,imm E,imm base.Bool], other: imm base.List[E]): imm base.Bool -> …, // from base.List/1
mut .flow: mut base.flows.Flow[E] -> …, // from base.List/1
read .flow: mut base.flows.Flow[read/imm E] -> …, // from base.List/1
imm .flow: mut base.flows.Flow[imm E] -> …, // from base.List/1
mut .clear: imm base.Void, // from base.List/1
mut +(e: E): mut base.List[E] -> …, // from base.List/1
read .size: imm base.Nat, // from base.Collection/0
read .expose(list: mut base.List[E], i: imm base.Nat): E,
mut .tryGet(i: imm base.Nat): mut base.Opt[E], // from base.List/1
read .tryGet(i: imm base.Nat): mut base.Opt[read/imm E], // from base.List/1
imm .tryGet(i: imm base.Nat): mut base.Opt[imm E], // from base.List/1
mut .iter: mut base.iter.Iter[E] -> …, // from base.List/1
read .iter: mut base.iter.Iter[read/imm E] -> …, // from base.List/1
imm .iter: mut base.iter.Iter[imm E] -> …, // from base.List/1
read .isEmpty: imm base.Bool, // from base.Collection/0
read .tryExpose(list: mut base.List[E], i: imm base.Nat): mut base.Opt[E],
read .inner: read base.List[E],
mut .add(e: E): imm base.Void, // from base.List/1
mut .get(i: imm base.Nat): E, // from base.List/1
read .get(i: imm base.Nat): read/imm E, // from base.List/1
imm .get(i: imm base.Nat): imm E, // from base.List/1
mut .addAll(other: mut base.List[E]): imm base.Void -> …, // from base.List/1
mut ==(eq: read base.F[E,E,imm base.Bool], other: mut base.List[E]): imm base.Bool -> …, // from base.List/1
read ==(eq: read base.F[read/imm E,read/imm E,imm base.Bool], other: read base.List[E]): imm base.Bool -> …, // from base.List/1
imm ==(eq: imm base.F[imm E,imm E,imm base.Bool], other: imm base.List[E]): imm base.Bool -> …, // from base.List/1
mut .flow: mut base.flows.Flow[E] -> …, // from base.List/1
read .flow: mut base.flows.Flow[read/imm E] -> …, // from base.List/1
imm .flow: mut base.flows.Flow[imm E] -> …, // from base.List/1
mut .clear: imm base.Void, // from base.List/1
mut +(e: E): mut base.List[E] -> …, // from base.List/1
read .size: imm base.Nat, // from base.Collection/0
read .expose(list: mut base.List[E], i: imm base.Nat): E,