(class, SS.foldr (op::) [] values) :: out)
[] classes
+fun whoHas {class, value} =
+ SM.foldri (fn (user, classes, users) =>
+ case SM.find (classes, class) of
+ NONE => users
+ | SOME values =>
+ if SS.member (values, value) then
+ user :: users
+ else
+ users) [] (!acl)
+
fun class {user, class} =
case SM.find (!acl, user) of
NONE => SS.empty