list_dubst_du :: [Item] -> STRef t (DUTree t) -> ST t ()
list_dubst_du xs tp =
    case xs of
        (x:xs1) ->
            do
            dubst_insert_du x tp
            list_dubst_du xs1 tp
        [] ->
            return ()

-- destructively insert element x into (ref to) BST
list_dubst_du :: [Item] -> STRef t (DUTree t) -> ST t ()
list_dubst_du xs tp =
    case xs of
        (x:xs1) ->
            do
            dubst_insert_du x tp
            list_dubst_du xs1 tp
        [] ->
            return ()

-- destructively insert element x into (ref to) BST
list_dubst_du xs tp =
    case xs of
        (x:xs1) ->
            do
            dubst_insert_du x tp
            list_dubst_du xs1 tp
        [] ->
            return ()

-- destructively insert element x into (ref to) BST