sig
  type direction = Fwd | Rev
  val dir_rev : Flx_dlst.direction -> Flx_dlst.direction
  type 'a dlst = { dir : Flx_dlst.direction; lst : 'a list; }
  val dfwd : 'Flx_dlst.dlst -> 'a list
  val drev : 'Flx_dlst.dlst -> 'a list
  val dlst_fwd : 'a list -> 'Flx_dlst.dlst
  val dlst_rev : 'a list -> 'Flx_dlst.dlst
  val dlst_lst : 'Flx_dlst.dlst -> 'a list
  val dlst_dir : 'Flx_dlst.dlst -> Flx_dlst.direction
  val dlst_map : ('-> 'b) -> 'Flx_dlst.dlst -> 'Flx_dlst.dlst
  val append : 'Flx_dlst.dlst -> '-> 'Flx_dlst.dlst
  val prepend : 'Flx_dlst.dlst -> '-> 'Flx_dlst.dlst
  val cons : 'a list -> '-> 'a list
  val concat : 'Flx_dlst.dlst -> 'Flx_dlst.dlst -> 'Flx_dlst.dlst
end