There's nothing better than making a data type an instance of Num. In particular, fromInteger is a joy. But how about lists?

For example, if I have

data Foo a = F [a]

I can create a fromInteger such as
fromInteger i = F [fromInteger i]

and then a 19::(Foo Int), could become F [19].

Is it possible to do something similar for lists? So could
[1,2,3]::(Foo Int) become something slightly different, say,

F [1,2,3]

Paul