+fun mkKindContactRow r =
+ case r of
+ name :: rest => (C.stringFromSql name, mkContactRow rest)
+ | _ => Init.rowError ("name/contact", r)
+
+fun listContactsByKind (knd, priv) =
+ C.map (getDb ()) mkKindContactRow ($`SELECT name, Contact.id, usr, knd, v, priv
+ FROM Contact JOIN WebUser ON WebUser.id = usr
+ WHERE knd = ^(C.intToSql knd)
+ AND priv <= ^(privToSql priv)
+ ORDER BY name`)
+