let unbind f obj =
let handlers =
try
Obj.obj (obj >>> get handlers_field >>> as_block)
with Failure "as_block" ->
ref []
in
handlers := List.filter ((!=) f) !handlers ;
if !handlers = [] then (
obj >>> set handlers_field (inject Nil) ;
obj >>> set name (inject Nil)
)