   waechter
   schemaUserShared
   idToSchemaUserTakenAsync
+  _
 ) ->
   waechter.schemasToLazyAsyncValidator(
-    schemaUserShared
-    {rights: waechter.maybe(waechter.string)}
+    _.merge({}, schemaUserShared, {rights: waechter.undefinedOr(waechter.string)})
     idToSchemaUserTakenAsync()
   )
 

  schemaUserShared
  schemaUserRightsForbidden
  idToSchemaUserTakenAsync
) ->
  (user, id) ->
    waechter.schemasToLazyAsyncValidator(
      schemaUserShared
      schemaUserRightsForbidden
      idToSchemaUserTakenAsync(id)
    ) (user)


  waechter
  schemaUserShared
  idToSchemaUserTakenAsync
  _
) ->
  (user, id) ->
    waechter.schemasToLazyAsyncValidator(
      _.merge({}, schemaUserShared, {rights: waechter.undefinedOr(waechter.string)})
      idToSchemaUserTakenAsync(id)
    ) (user)
