Remove ElmType instances of non-32bit int types#17
Open
expipiplus1 wants to merge 1 commit intokrisajenkins:masterfrom
Open
Remove ElmType instances of non-32bit int types#17expipiplus1 wants to merge 1 commit intokrisajenkins:masterfrom
expipiplus1 wants to merge 1 commit intokrisajenkins:masterfrom
Conversation
Elm's `Int` type is a 32bit two's complement integer. The exact size of Haskell's `Int` type is unspecified. Having instances for integral types which don't have an isomorphism to Elm types allows for lossy conversions when moving data between the two languages. For example sending an Elm Int to a Haskell function with type `Int8 -> Int8` will only work with 8 bit values and raise an error for any out of range values. By only providing instances for Int32 the user is forced into being more careful with how they marshall integer types between Haskell and Elm. See https://github.com/elm-lang/core/issues/742#issuecomment-257484290 for information on the specifics of Elm's Int type.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As requested, here's this change with a more thorough explanation.
Elm's
Inttype is a 32bit two's complement integer. The exact size ofHaskell's
Inttype is unspecified. Having instances for integral typeswhich don't have an isomorphism to Elm types allows for lossy
conversions when moving data between the two languages. For example
sending an Elm Int to a Haskell function with type
Int8 -> Int8willonly work with 8 bit values and raise an error for any out of range
values. By only providing instances for Int32 the user is forced into
being more careful with how they marshall integer types between Haskell
and Elm.
See https://github.com/elm-lang/core/issues/742#issuecomment-257484290
for information on the specifics of Elm's Int type.