Can't negate or overwrite interfaces

So this is probably one of those “don’t do that” things, but I discovered that you can’t negate and redefine interfaces. (Specifically I was trying to rewrite ($Obj is in room $Room) so you could give it a bound $Room and unbound $Obj as well as the other way around.) The following minimal code:

#room
(room *)

#player
(current player *)
(* is #in #room)

~(interface ($ is in room $))
~($ is in room $)

gives:

Error: stdlib.dg, line 6131: Interface already declared for '($ is in room $)'
at Test.dg:8.

I am thinking that it would be nice to be able to tinker with stdlib interfaces without having to edit the stdlib.dg file, in the same way you can negate a rule and redefine it in another file. To prevent accidental duplicates I think requiring an explicit ~(interface (foo)) would make sense.