Is it me or is mpl::swich_ both undocumented and non-working ?

I managed to get this :

template<typename Body, typename T>
struct switch_
{
  typedef typename find_if<Body,apply1<first<_1>,T> >::type iter_;
  typedef typename deref<iter_>::type pair_;
  typedef typename second<pair_>::type f_;
  typedef typename apply1< f_, T>::type type;
};

working properly. Seems the current swich_ use lambda<> where it shouldn't. Is this a known bug or is there something bound to replace switch_ in the near future ? SHould I fill a trac ticket about this ?