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

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


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