listFromVariant_ :: forall a. (DBusTypeable a, Variable a) => DBusValue -> Maybe [a]
listFromVariant_ = f where 
  f (D.DBusArray t xs) | t == dbusType (undefined :: a)
      = mapM fromVariant xs
  f _ = Nothing

-- map standard types to dbus types
listFromVariant_ :: forall a. (DBusTypeable a, Variable a) => DBusValue -> Maybe [a]
listFromVariant_ = f where 
  f (D.DBusArray t xs) | t == dbusType (undefined :: a)
      = mapM fromVariant xs
  f _ = Nothing

-- map standard types to dbus types
listFromVariant_ = f where 
  f (D.DBusArray t xs) | t == dbusType (undefined :: a)
      = mapM fromVariant xs
  f _ = Nothing

-- map standard types to dbus types