let mkli s =
              let rec loop f =
                function | i :: il -> loop (ldot (f i)) il | [] -> f s
              in loop lident