   schemaUserShared
   schemaUserRightsForbidden
   idToSchemaUserTakenAsync
+  _
 ) ->
   waechter.schemasToLazyAsyncValidator(
-    schemaUserShared
-    schemaUserRightsForbidden
+    _.merge({}, schemaUserShared, schemaUserRightsForbidden)
     idToSchemaUserTakenAsync()
   )
 

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

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

