functor (L : Lists.ListSig->
  sig
    type 'a list_ = 'L.t
    type 'a cursor
    val to_cursor : 'a list_ -> 'a cursor
    val from_cursor : 'a cursor -> 'a list_
    val at_front : 'a cursor -> bool
    val at_back : 'a cursor -> bool
    val move_next : 'a cursor -> 'a cursor
    val move_prev : 'a cursor -> 'a cursor
    val goto_front : 'a cursor -> 'a cursor
    val goto_back : 'a cursor -> 'a cursor
    val value : 'a cursor -> 'a option
    val list : 'a cursor -> 'a list_
    val replace_list : 'a list_ -> 'a cursor -> 'a cursor
  end