Cabalized, made things more canonical, fixed looked-like-an-error in main:rules_eval (all instead of any)

The priority of function call is the greatest, so 

    show a ++ show b = (show a) ++ (show b).

The bug(?) in main:rules_eval caused it to match input to all patterns in rule instead of one, so /new redirected us to ya.ru.

Also, use eta-reduction:

    let tpl = \r -> template params r 
    let tpl r = template params r
    let tpl = template params

- these 3 expression are completely identical.