let input_lines filename =
  let in_channel =
    open_in filename
  in
  let rec aux accu =
    try
      let newline =
        input_line in_channel
      in
      aux (newline::accu)
    with End_of_file -> accu
  in
  let result =
    List.rev (aux [])
  in
  close_in in_channel;
  result



let read_all filename =
  input_lines filename
  |> String.concat "\n"