open Core.Std;;

(*
let rec transpose = function
| []          -> []
| []::tail    -> transpose tail
| (x::t1)::t2 ->
    let new_head = (x::(List.map List.hd t2)) 
    and new_tail =  (transpose (t1 :: (List.map List.tl t2) ))
    in 
    new_head @ new_tail
;;
*)

let input_to_sexp s =
    let result = 
      String.split_lines s 
      |> List.filter ~f:(fun x->
         (String.strip x) <> "")
      |> List.map ~f:(fun x->
         "("^(String.tr '=' ' ' x)^")")
      |> String.concat 
    in
    print_endline ("("^result^")");
    "("^result^")"
    |> Sexp.of_string
;;