Changed functions to use std::true_type.
Implemented match.hpp.