let sigma op l =
  match op, l with
    | InL, [x] -> mk_inl x 
    | InR, [x] -> mk_inr x 
    | OutL, [x] -> mk_outl x 
    | OutR, [x] -> mk_outr x 
    | _ -> assert false