Hi Roelof,
If you don't consider it cheating (and I suggest you shouldn't, having had a stab at the answers), you will find great enlightenment looking at how these functions are *actually* implemented in the wild. Did you know that there is a "source" link for each function on Hackage? By clicking on that, for your first example, you can compare the actual implementation of (++) with your "plusplus" function:
(By the way, it's that function in particular that gave me one of my first "Aha!" moments in Haskell... it's quite beautiful in its simplicity).
One thing with viewing the source on Hackage is that sometimes it can be a little more confusing than it needs to be for the sake of efficiency. A really good source for good, readable examples of Prelude functions in Haskell is the Haskell Report:
(In this case, though, the implementation is the same).
Having a shot at defining these library functions yourself, as you have done, and then comparing your version with the "official" version in the prelude is a great way to learn good style!
-Dani.