Say I have a function `concat :: String -> String -> String`. So,

```
var :: String
var = concat (concat "a" "b") "c")  -- "abc"

```

Now, I have a function which I want to use to calculate how many times concat is called:

```
func :: (String->String->String) -> Int

```

So, `func var` should return 2.

How should I get this value and at the same time perform the concat?