# [Haskell-cafe] Reference for technique wanted

```There's a long-known technique in functional languages
where
[x1,...,xn]     => \tail -> x1:...xn:tail
xs ++ ys        => f . g
xs              => f []```
```
A correspondent mentioned to me that he couldn't find a reference
to the idea (which I gather he had independently rediscovered).
I know I've read about it somewhere.  Can anyone provide a reference?

_______________________________________________