Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make next major release: ps-0.13.x-v0.17.0 #361

Merged
merged 172 commits into from Jul 25, 2019

Conversation

@JordanMartinez
Copy link
Owner

commented Jul 21, 2019

Summary of Major Changes

There were a few goals for this PR. Most of them were driven by #356. So, here's the major changes:

  • In Prelude-ish, the 'Appendably' type classes were split into two parts: Semigroup and Monoid and a link to Harry's Numeric Hierarchy tutorial. The first part appears before the Monad type class hierarchy so that I can use @cvlad's summary table and link to an explanation on the famous Monad quote.
  • 'Hello World and Effects' was renamed to 'Effect and Aff' and now includes a summary of Aff and how to use its basic API. Rather than waiting to cover 'Aff' until the Projects folder, I thought it would be better to cover it alongside of Effect. This also means I cover MonadEffect here rather than in the Debugging folder. While covering Aff, I used Node.ReadLine as an example of how to covert Effect computations that require callbacks into Aff ones. Now, the reader can create console-based programs using the API covered.
  • The example of a computation that uses local mutable state had usage of traceM removed. Now, I simply notify the reader that we'll show how to print values later in the Debugging folder. Thus, the Debugging folder now includes the local mutable state file with traceM included and a warning about abusing it.
  • The Application Structure folder was repositioned to come much earlier in the 'Hello World' root folder. It now appears after the Debugging folder. Since one only needs to understand type level programming when it covers Run, I decided to put the Type Level Programming folder after the Application Structure folder and then have the reader read the TLP folder before they read through App Structure's "From Free to Run" folder's contents. By covering monad transformers earlier, I can now easily cover MonadGen and the Gen monad in the Testing folder, which leaves the Benchmarking folder at the end.
  • The Application Structure folder now includes new content that appears before I explain how we get the StateT/MonadState entities. It first provides a "badly structured" program written in PureScript and points out why it's bad. Then, it explains how a function can be a monad and compares one function, (a -> b), to its counterpart, (a -> monad b), using the monad, Box. The table of monad transformers has been updated to better distinguish monad transformers that are based on data types (e.g. MaybeT, ListT, and WriterT) and those that are based on functions (e.g. ReaderT, StateT, ContT). Lastly, I give a "before MaybeT" code and "after MaybeT code" to show why one would use MaybeT and how that changes the readability of the code.
  • Fixes #82: the Testing folder now includes an overview of the Gen monad and its types and how it generates random values
  • The Testing folder now includes a link to an explanation on Coarbitrary and also shows how to properly generate random String values.
  • Various files have been repositioned or renamed
  • Various headers have been renamed or removed

Bugs Fixed

Other Changes

  • the project has been updated to the 0.13.2 PureScript release

  • cover the differences/tradeoffs between global and local type class instances (FP Philo/Type Classes.md)

  • Fixes #302

  • Fixes #353

  • Fixes #354 (See the new Syntax/Modifying Do Ado Syntax Sugar/ folder)

  • Fixes #355

  • Fixes #358

  • Fixes #359

  • Fixes #360

@JordanMartinez JordanMartinez force-pushed the development branch from b859dba to 6eba294 Jul 24, 2019

@JordanMartinez JordanMartinez marked this pull request as ready for review Jul 25, 2019

@JordanMartinez JordanMartinez merged commit 707282b into latestRelease Jul 25, 2019

1 check passed

Travis CI - Pull Request Build Passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.