type tree<'a> = Leaf of 'a | Node of tree<'a> * tree<'a> let mintree xs = let rec patro = function | [] -> [] | [x] -> [x] | x::y::rest -> Node (x,y) :: patro rest let rec spojuj = function | [x] -> x | xs -> spojuj (patro xs) spojuj xs