anchor.diff:  -spec 'regex?'(any()) -> boolean().
   'regex?'(X) -> type(X) == re_pattern.
   
  +-spec 'var?'(any()) -> boolean().
  +'var?'(X) ->
  +  type(X) == 'clojerl.Var'.
  +
   -spec deref(any()) -> any().
   deref(X) ->
     'clojerl.IDeref':deref(X).
  
positive.code: -spec get(any(), any(), any()) -> any().
  get(undefined, _Key, _NotFound) -> undefined;
  get(X, Key, NotFound) -> 'clojerl.ILookup':get(X, Key, NotFound).
  
  -spec merge([any()]) -> any().
  merge([]) ->
  
negative.code: cons(Item, undefined) ->
    list([Item]);
  cons(Item, Seq) ->
    case 'seq?'(Seq) of
      true  -> 'clojerl.IColl':cons(Seq, Item);
      false -> 'clojerl.IColl':cons(seq2(Seq), Item)
    end.
  
  -spec first(any()) -> any().
  first(undefined) -> undefined;
  