-- convert list to BST (using destructive insert)
list_dubst :: [Item] -> ST s (DUTree s)
list_dubst xs =
    do
    tp <- newSTRef DUEmpty
    list_dubst_du xs tp
    readSTRef tp

-- As above with (ref to) tree passed in
list_dubst :: [Item] -> ST s (DUTree s)
list_dubst xs =
    do
    tp <- newSTRef DUEmpty
    list_dubst_du xs tp
    readSTRef tp

-- As above with (ref to) tree passed in
list_dubst xs =
    do
    tp <- newSTRef DUEmpty
    list_dubst_du xs tp
    readSTRef tp

-- As above with (ref to) tree passed in