let decompose (m1 : string) : string list =
        let l = String.length m1 in
        let index_brack = indexStr "(" m1 in
        if(index_brack<>(-1) && (String.sub m1 (l-1) 1)=")")
        then(
             let tmp = String.sub m1 ((index_brack)+1) (l-index_brack-2) in
             let l2 = l-index_brack-2 in
             let rec aux l_tmp tmp res = 
                     let separator = find_separator "," 0 tmp in
                if(separator<>(-1))
                then (aux  (l_tmp-separator-1) (String.sub tmp (separator+1) (l_tmp-separator-1)) ((String.sub tmp 0 separator)::res))
                else ((String.sub m1 0 index_brack)::((List.rev res)@[tmp]))
             in
             if(tmp<>"")
             then aux l2 tmp []
             else [(String.sub m1 0 index_brack)];
             )
         else []