Previously, the HTML docs would not indicate which types could be safely
coerced and which could not:
-- cannot be coerced
data Foo1 a = Foo1 a
type role Foo1 nominal
-- can be coerced
data Foo2 a = Foo2
type role Foo2 phantom
-- can be coerced in some contexts
data Foo3 a = Foo3 a
type role Foo3 representational
The HTML docs now display the role annotations either explicitly
declared by the developer or those inferred by the compiler.
Since role annotations are an advanced feature and since most type
parameters' roles are the representational role, the phantom and
nominal role annotations are displayed in documentation whereas the
representational role is not, similar to "uninteresting" kind signatures.
Lastly, FFI declarations like below...
foreign import data Foo :: (Type -> Type) -> Type
type role Foo nominal
...will be rendered as though they are data declarations:
data Foo :: (Type -> Type) -> Type
data Foo t0
type role Foo nominal
One can distinguish FFI declarations with roles separately from normal data
Previously, the HTML docs would not indicate which types could be safely
coerced and which could not:
-- cannot be coerced
data Foo1 a = Foo1 a
type role Foo1 nominal
-- can be coerced
data Foo2 a = Foo2
type role Foo2 phantom
-- can be coerced in some contexts
data Foo3 a = Foo3 a
type role Foo3 representational
The HTML docs now display the role annotations either explicitly
declared by the developer or those inferred by the compiler.
Since role annotations are an advanced feature and since most type
parameters' roles are the representational role, the phantom and
nominal role annotations are displayed in documentation whereas the
representational role is not, similar to "uninteresting" kind signatures.
Lastly, FFI declarations like below...
foreign import data Foo :: (Type -> Type) -> Type
type role Foo nominal
...will be rendered as though they are data declarations:
data Foo :: (Type -> Type) -> Type
data Foo t0
type role Foo nominal
One can distinguish FFI declarations with roles separately from normal data
declarations that have roles based on the name of the type parameters. Since FFI declarations' type parameters are implicit and thus unnamed, the compiler will generate their name: t0, t1, ..., tN where N is a zero-based
This version was pushed to npm by jalexm, a new releaser for purescript since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps purescript from 0.13.8 to 0.14.7.
Release notes
Sourced from purescript's releases.
... (truncated)
Changelog
Sourced from purescript's changelog.
... (truncated)
Commits
7917cb4
Make v0.14.7 (#4245)a102390
Make v0.14.6 PS release (#4236)7f385cd
Support the purs.json manifest in purs publish (#4233)0b5abdb
Add myself to contributors (#4237)7bf9e61
Scope type vars when type checking typed values (#4216)69955a7
RewritePartial
optimization to be cleaner (#4208)81dd8ea
Fix type operators in declaration param kinds (#4220)d4950b0
Properly deserialize unused identifiers in the CoreFn (#4221)53b4117
Update GitHub issue templates to use new tag names (#4219)c1bcbd5
Inline newtype constructor applications with ($) (#4205)Maintainer changes
This version was pushed to npm by jalexm, a new releaser for purescript since your current version.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)