In math, we often say *the limit of a function*. This is not precise. A
better phase is *“the limit of a function at a point”* since limits are
always defined with respect to a function and a point.

Say we have a function \(f\) and we want to find the limit at the point \(p\). We can write \(lim_{x \to p} f(x)\) as \(l(f,p)\) to emphasize that the limit is a binary function, with the following type signature (in Haskell):

```
lim :: (a -> b) -> a -> b
```

Except that it’s not quite a function. The limit does not always exist at a point. So perhaps a better type signature is

```
lim :: (a -> b) -> a -> Maybe b
```