       list.set(key, dropdown)
 
   hideAll = (keys) ->
-    keys = keys or Object.keys(list.keys)
+    keys = keys or allKeys()
     keys.forEach(hide)
 
   isShown = (key) ->

    # De Morgan's Laws, baby.
    #   (!P ^ !Q) => !(P v Q)
    if not (isDropdown(el) or isTrigger(el))
      Dropdowns.hideAll()

  remove: remove
  removeAll: removeAll
  setPosition: setPosition
  hideAllBut: (keys) ->
    notTheseKeys = if Array.isArray(keys) then keys else [keys]
    hideAll except notTheseKeys
  getPersistentKeys: -> allKeys().filter( (key) -> list.get(key).persistent)

# Singleton
Dropdowns = DropdownsStruct()
