make names of parsed symbols unique

This addresses #106.
The clash there was between `x` in 
```{-@ type PlusOne = (Int, Int)<{\x v -> v > x}> @-}```
and 
``` Just :: x:a -> {v:Maybe a | isJust v <=> true }```
as derived from `include/Data.Maybe.spec`

So, here we make unique 
 * the parsed arguments for predicates
 * the functional arguments to created types