This came up in the context of plotting solutions to NDSolve, but I've reduced it to the following issue. This really has me scratching my head.

```
points = {{0, 0}, {1, 1}, {2, 3}, {3, 4}, {4, 3}, {5, 0}};
ifun = Interpolation[points]

```

ifun is now an InterpolatingFunction. I cannot plot ifun, but I can plot ifun[t] thus:

```
Plot[ifun[t], {t,0.,1.0}]

```

If I make the following assignment, I cannot plot ifun2[t]:

```
ifun2[t] = ifun[t]

```

In other words, the following statement will not plot anything: 

```
Plot[ifun2[t], {t,0.0,1.0}]

```

However, if I do this:

```
ifun3[t_] = ifun[t]

```

I can plot ifun3[t]. Now, if I ask: is ifun2[t] identical to ifun[t]

```
ifun2[t] == ifun[t]

```

The answer is "True". Similarly for ifun3[t], it is identical to ifun[t]. However, ifun3[t] plots, and ifun2[t] does not! How can ifun2[t] and ifun3[t] both be identical to ifun[t] if one plots and the other doesn't?