Added 'if' construction for optional data. Usage: ['if', {Function|Boolean} predicate, {...} types].