let cadr (l : 'a list) : 'a  = match l with (_::x::_) -> x
                                            |-> failwith "empty list"