functor (Csig end-> 
  struct
    let r = ref 0
    let level () = !r
    let set_level n = r := n
    let incr_level () = incr r
    let decr_level () = decr r
  end