haskellfoundation / haskellfoundation/haskell-2010-revised-report

Changes to the `Functor` and `Monad` hierarchy

Open
#8 1 comment 0 reactions 0 assignees View on GitHub
feature: language report feature: standard libraries
Dominant language
Typst
Stars
20
Forks
5
Avg merge
4d 18h
Merged PRs (30d)
6

Description

This is one of the major changes that differentiates the existing `Haskell2010` language report from the language as it is currently implemented and used.

- The Functor-Applicative-Monad proposal introduced the Applicative typeclass between `Functor` and `Monad`.
- The MonadFail proposal removed the `fail` method from the `Monad` typeclass and introduced a new typeclass `MonadFail`. The desugaring of do-notation uses this typeclass for matches on failable patterns.
- The "Monad of no return" proposal removes the `return` method from the `Monad` typeclass and defines it in terms of `Applicative.pure`. This change has been accepted, but is still in the process of being implemented. In view of the fact that we will probably get there sooner than later it might be better to already include this change in the revised report.

The proposals themselves are linked from the README.md of the repository.

Contributor guide

Open the contributing guide

Research direction

Start with README.md to follow the linked Functor-Applicative-Monad, MonadFail, and Monad of no return proposals. Compare those requirements with the corresponding typeclass and do-notation sections of the report. Done means the revised report accurately reflects the selected proposals and their current implementation status.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.