interface Interpolation : Type -> Type
Interpolated strings are of the form `"xxxx \{ expr } yyyy"`.
In this example the string `"xxxx "` is concatenated with `expr` and
`" yyyy"`, since `expr` is not necessarily a string, the generated
code looks like this:
```
concat [interpolate "xxxx ", interpolate expr, interpolate " yyyy"]
```
This allows to customise the interpolation behaviour by providing
an instance of `Interpolation` for a type.
interpolate : a -> String
Interpolation String
interpolate : Interpolation a => a -> String