Change return type for Int64# and Word64# comparisons?

Jan Stolarek jan.stolarek at
Thu Aug 15 17:47:08 CEST 2013

> for me personally Bool would be even better
To get a Bool you can use wrappers defined in the same module, e.g.:

geInt64# :: Int64# -> Int64# -> Bool  
geInt64# a b = tagToEnum# (int64ToInt# (geInt64## a b))

Looking at the implementation of this wrapper I think Luite has a point - to get a Bool it has to be caste to a machine supported Int#. So I think that it would make sense to have these primops retunr Int# instead of Int64#, but I'd like to hear what others have to say.


----- Oryginalna wiadomość -----
Od: "Luite Stegeman" <stegeman at>
Do: "ghc-devs" <ghc-devs at>
Wysłane: czwartek, 15 sierpień 2013 16:36:59
Temat: Change return type for Int64# and Word64# comparisons?

Hi all, 

With the recent change of comparison primops to return Int# instead of Bool, the 64 bit operations were also changed, to return Int64# or Word64#: 

It seems a bit wasteful to me to return a value bigger than a machine word for just a boolean. Changing the type to Int# would make the same optimizations possible as for the native-sized primops (though  since they map to JavaScript bools in GHCJS). 



ghc-devs mailing list
ghc-devs at

More information about the ghc-devs mailing list