But I am realizing that there is an issue
fn = parse('m | filter');
but 'filter' can change in child injector and parser caches the expressions. 
I think we would not see the new filter in child injector. 
Or is it not caching the expressions?