Selected practices from The Structure and Interpretation of Computer Programs, completed in Haskell