public override bool match(Erlang.Object pattern, Erlang.VarBind binding) { if (binding == null) return false; Erlang.Object value = binding.find(m_var); if (value != null) return value.match(pattern, binding); Erlang.Object term = null; binding[m_var] = pattern.subst(ref term, binding) ? term : pattern; return true; }