various introductory machine learning algorithms using automatic differentiation in haskell