A bit nicer way to use metafunctions.

Use MPL's metafunction applicator instead of a mess of template
keywords. The only reason is that this thing is documented, so there
will be less questions about the magic.