base.LList[E]

imm .tryGet(i: imm base.Nat): mut base.Opt[imm E] -> …,
read .tryGet(i: imm base.Nat): mut base.Opt[read/imm E] -> …,
mut .tryGet(i: imm base.Nat): mut base.Opt[E] -> …,
read .iter: mut base.iter.Iter[read/imm E] -> …,
imm .iter: mut base.iter.Iter[imm E] -> …,
mut .iter: mut base.iter.Iter[E] -> …,
read .isEmpty: imm base.Bool -> …,
imm .tail: imm base.LList[E] -> …,
read .tail: read base.LList[E] -> …,
mut .tail: mut base.LList[E] -> …,
imm .head: mut base.Opt[imm E] -> …,
read .head: mut base.Opt[read/imm E] -> …,
mut .head: mut base.Opt[E] -> …,
mut .list: mut base.List[E] -> …,
imm ++(l1: imm base.LList[imm E]): imm base.LList[imm E] -> …,
read ++(l1: read base.LList[read E]): read base.LList[read E] -> …,
mut ++(l1: mut base.LList[E]): mut base.LList[E] -> …,
imm .get(i: imm base.Nat): imm E -> …,
read .get(i: imm base.Nat): read/imm E -> …,
mut .get(i: imm base.Nat): E -> …,
read .match[R$0](m: mut base.LListMatchRead[E,R$0]): R$0 -> …,
mut .match[R$0](m: mut base.LListMatch[E,R$0]): R$0 -> …,
imm .flow: mut base.flows.Flow[imm E] -> …,
read .flow: mut base.flows.Flow[read/imm E] -> …,
mut .flow: mut base.flows.Flow[E] -> …,
read .size: imm base.Nat -> …,
imm +(e: imm E): imm base.LList[imm E] -> …,
read +(e: read E): read base.LList[read E] -> …,
mut +(e: E): mut base.LList[E] -> …,
read .pushFront(e: E): read base.LList[E] -> …,
mut .pushFront(e: E): mut base.LList[E] -> …,
imm .tryGet(i: imm base.Nat): mut base.Opt[imm E] -> …,
read .tryGet(i: imm base.Nat): mut base.Opt[read/imm E] -> …,
mut .tryGet(i: imm base.Nat): mut base.Opt[E] -> …,
read .iter: mut base.iter.Iter[read/imm E] -> …,
imm .iter: mut base.iter.Iter[imm E] -> …,
mut .iter: mut base.iter.Iter[E] -> …,
read .isEmpty: imm base.Bool -> …,
imm .tail: imm base.LList[E] -> …,
read .tail: read base.LList[E] -> …,
mut .tail: mut base.LList[E] -> …,
imm .head: mut base.Opt[imm E] -> …,
read .head: mut base.Opt[read/imm E] -> …,
mut .head: mut base.Opt[E] -> …,
mut .list: mut base.List[E] -> …,
imm ++(l1: imm base.LList[imm E]): imm base.LList[imm E] -> …,
read ++(l1: read base.LList[read E]): read base.LList[read E] -> …,
mut ++(l1: mut base.LList[E]): mut base.LList[E] -> …,
imm .get(i: imm base.Nat): imm E -> …,
read .get(i: imm base.Nat): read/imm E -> …,
mut .get(i: imm base.Nat): E -> …,
read .match[R$0](m: mut base.LListMatchRead[E,R$0]): R$0 -> …,
mut .match[R$0](m: mut base.LListMatch[E,R$0]): R$0 -> …,
imm .flow: mut base.flows.Flow[imm E] -> …,
read .flow: mut base.flows.Flow[read/imm E] -> …,
mut .flow: mut base.flows.Flow[E] -> …,
read .size: imm base.Nat -> …,
imm +(e: imm E): imm base.LList[imm E] -> …,
read +(e: read E): read base.LList[read E] -> …,
mut +(e: E): mut base.LList[E] -> …,
read .pushFront(e: E): read base.LList[E] -> …,
mut .pushFront(e: E): mut base.LList[E] -> …,