A bit slower than the Golang version but a bit more compact and readable code.
$ ghc fibonacci.hs && time ./fibonacci
[0,1,1,2,3,5,8,13,21,34]
43466557686937456435688527675040625802564660517371780402481729089536555417949051890403879840079255169295922593080322634775209689623239873322471161642996440906533187938298969649928516003704476137795166849228875
104494
real 0m10.660s
user 0m10.571s
sys 0m0.085s
If you annotate
fibN'
like sofibN' :: Integer -> Integer
and compile with-O2
the compiler can do some nice optimizations.