hedgehogqa / hedgehogqa/haskell-hedgehog-classes

How could monadIOLaws ever be used?

Open
#12 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
57
Forks
19
PR merge metrics
No merged PRs in 30d

Description

To have a law-abiding `MonadIO` means that your monad must be at least as powerful as `IO` - ie, be a transformer over `IO`. Such a monad won't have a meaningful `Eq` instance, because `IO` has no `Eq` instance. Can `monadIOLaws` actually ever be used?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by examining the `monadIOLaws` definition and its relationship to `MonadIO`, `IO`, and the required `Eq` instance. Determine whether any valid transformer-over-`IO` type can satisfy the law, and document whether the law should remain available or be redesigned.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
testing
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.