type ('self, 'trec, 'a) tval list0 : ( 'self, 'trec, 'a ) t -> ( 'self, 'trec, 'a list ) tval list0sep : 
  ( 'self, 'trec, 'a ) t ->
  ( 'self, norec, unit ) t ->
  bool ->
  ( 'self, 'trec, 'a list ) tval list1 : ( 'self, 'trec, 'a ) t -> ( 'self, 'trec, 'a list ) tval list1sep : 
  ( 'self, 'trec, 'a ) t ->
  ( 'self, norec, unit ) t ->
  bool ->
  ( 'self, 'trec, 'a list ) tval opt : ( 'self, 'trec, 'a ) t -> ( 'self, 'trec, 'a option ) tval self : ( 'self, mayrec, 'self ) tval next : ( 'self, mayrec, 'self ) t