Add a 'z' to the end of the first example and it figures out it needs to 'reverse . drop 1 . reverse' to take a character off the end.
Imagine if it could learn on every open source Haskell codebase on GitHub and then learn in real time while people type.