-
Notifications
You must be signed in to change notification settings - Fork 23
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
Fewer constraints in functions #310
Conversation
@@ -76,6 +77,7 @@ type MaryEraOnwardsConstraints era = | |||
, L.EraPParams (ShelleyLedgerEra era) | |||
, L.EraTx (ShelleyLedgerEra era) | |||
, L.EraTxBody (ShelleyLedgerEra era) | |||
, L.EraUTxO (ShelleyLedgerEra era) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How do you know that it is valid to add such a constraint here? Is this something you infer from the ledger?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you can add and the the constraints function still compiles, in this case maryEraOnwardsConstraints
, then adding the constraint is valid.
This constraint was added because code in MaryEraOnwards
needed the constraint.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@newhoggy> And the maryEraOnwardsConstraints
obtains the constraints in context thanks to the various imports right?
So in the end, this list of constraints here show what we actually need to use (as opposed to the full set of constraints if we were importing everything available)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maryEraOnwardsConstraints
obtains the constraints by case
matching on the GADT. The case match tells the compiler what the specific era that is being used is after which the compiler can figure out the constraints.
The imports don't play into it except to allow use to write the XConstraints
type and the Constraints
type tells the compiler which of those constraints it knows about should be captured for the continuation.
…cardano-api-8.22.0.0 Update to cardano api 8.22.0.0
Changelog
Context
Checklist
See Running tests for more details
.cabal
files are updatedhlint
. See.github/workflows/check-hlint.yml
to get thehlint
versionstylish-haskell
. See.github/workflows/stylish-haskell.yml
to get thestylish-haskell
versionghc-8.10.7
andghc-9.2.7