sig
  type 'a clist =
      CList of 'a list
    | CConsL of 'a * 'a Flx_cil_clist.clist
    | CConsR of 'a Flx_cil_clist.clist * 'a
    | CSeq of 'a Flx_cil_clist.clist * 'a Flx_cil_clist.clist
  val toList : 'a Flx_cil_clist.clist -> 'a list
  val fromList : 'a list -> 'a Flx_cil_clist.clist
  val single : 'a -> 'a Flx_cil_clist.clist
  val empty : 'a Flx_cil_clist.clist
  val append :
    'a Flx_cil_clist.clist ->
    'a Flx_cil_clist.clist -> 'a Flx_cil_clist.clist
  val checkBeforeAppend :
    'a Flx_cil_clist.clist -> 'a Flx_cil_clist.clist -> bool
  val length : 'a Flx_cil_clist.clist -> int
  val map : ('a -> 'b) -> 'a Flx_cil_clist.clist -> 'b Flx_cil_clist.clist
  val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b Flx_cil_clist.clist -> 'a
  val iter : ('a -> unit) -> 'a Flx_cil_clist.clist -> unit
  val rev : 'a Flx_cil_clist.clist -> 'a Flx_cil_clist.clist
  val docCList :
    Flx_cil_pretty.doc ->
    ('a -> Flx_cil_pretty.doc) ->
    unit -> 'a Flx_cil_clist.clist -> Flx_cil_pretty.doc
end