Haskell: Improving my tail-recursive fibonacci implementation
===

I have come up with the following tail-recursive fibonacci generator that works:

    let {fibo :: Integral x => [x]->x->x->x->[x]; fibo l x y 0 = l; fibo l x y n = fibo (l ++ [y+x] ++ [y+x+y]) (x+y) (y+x+y) (n-1)}
Pardon me for the whole implementation put in one line because i am using the GHCi and haven't quite learnt how to put this in a file and run (i am yet to reach there). What i want to know is how this call:

    fibo [0, 1] 0 1 5
can be improved. I do not want to pass the initial list with 0 and 1 and then pass 0 and 1 again with the limit. I believe that the implementation can be changed. What changes can be done?

