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

Don’t let MonadZero imply its deprecation warning #68

Merged
merged 4 commits into from
Dec 8, 2020

Conversation

kl0tl
Copy link
Member

@kl0tl kl0tl commented Dec 6, 2020

Otherwise instances with a MonadZero constraint in their context hide the warning.

Otherwise instances with a MonadZero constraint in their context hide the warning.
@@ -32,13 +33,16 @@ import Data.Functor (class Functor, map, void, ($>), (<#>), (<$), (<$>))

import Prim.TypeError (class Warn, Text)

class Deprecated
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this work if we have multiple items deprecated? Perhaps we could use a pattern like ‘DeprecatedMonadZero’ if we need to distinguish classes in the future?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that making this class name more specific could help other issues in the future.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've renamed the class. Waiting on CI to build.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m not sure to understand why we should rename the class actually. Don’t the core libraries encourage to qualify imports to disambiguate?

Copy link
Member

@thomashoneyman thomashoneyman Dec 7, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant for within a single module when there are multiple deprecations; here it doesn’t really matter as far as errors go. Though I think it might help make the class more obviously not a generic deprecated class if we name it more specifically for the function or class which is deprecated.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh right, I didn’t pay attention to your first sentence initially for some reason 🤦

What do you think of an IsDeprecated suffix instead? I’m ok with whatever pattern you prefer though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's fine as well -- just something more specific than Deprecated. So MonadZeroIsDeprecated is great, DeprecatedMonadZero is fine, whatever works!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like MonadZeroIsDeprecated because it's clearer than DeprecatedMonadZero. The former reads like a statement whereas the latter is left to interpretation.

@JordanMartinez
Copy link
Contributor

Any idea why CI isn't running?

@thomashoneyman
Copy link
Member

I've made a mistake with the CI for these libraries, using on: push instead of on: [push, pull_request]. I'm going to sweep through and fix that ASAP.

@thomashoneyman
Copy link
Member

@JordanMartinez if you merge master into this branch then CI should run.

@thomashoneyman thomashoneyman merged commit 4db92e4 into purescript:master Dec 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants