sig
  module type S =
    sig
      type 'a list_
      type 'a cursor
      val to_cursor :
        'Reins.ListCursor.S.list_ -> 'Reins.ListCursor.S.cursor
      val from_cursor :
        'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.list_
      val at_front : 'Reins.ListCursor.S.cursor -> bool
      val at_back : 'Reins.ListCursor.S.cursor -> bool
      val move_next :
        'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.cursor
      val move_prev :
        'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.cursor
      val goto_front :
        'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.cursor
      val goto_back :
        'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.cursor
      val value : 'Reins.ListCursor.S.cursor -> 'a option
      val list : 'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.list_
      val replace_list :
        'Reins.ListCursor.S.list_ ->
        'Reins.ListCursor.S.cursor -> 'Reins.ListCursor.S.cursor
    end
  module Make :
    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
end