Int64# is exported on 64-bit systems (probably unintentionally), but you can't do anything with it
The Int64# prim type is not declared by primops.txt.pp on 64-bit platforms
(there's a CPP guard only enabled on 32-bit). However it's still exported from
GHC.Prim:
~ $ ghc-stage2 --interactive -XMagicHash
GHCi, version 8.9.0.20191017: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/omer/rcbackup/.ghci
λ:1> import GHC.Prim
λ:2> :info Int64#
type Int64# :: TYPE 'GHC.Types.Int64Rep
data Int64#
-- Defined in ‘GHC.Prim’
However this type is pretty much useless on 64-bit: there isn't any primops that
work on it, and Int64 holds an Int# (instead of Int64#) so you can't even
get an Int64 from it:
λ:5> import Data.Int
λ:6> :info Int64
type Int64 :: *
data Int64 = GHC.Int.I64# Int#
-- Defined in ‘GHC.Int’
The conversion functions in GHC.IntWord64 are also only defined on 32-bit.
Really the only thing that can be done with it on 64-bit is to unsafeCoerce#
it to Int#, but that will be difficult to do after !1869 (closed).
I think the reason why this type is visible on 64-bit (even though it's
explicitly disabled in primops.txt.pp) is because the wired-in int64PrimTyCon
which is also in exposedPrimTyCons.
See also: #16964 (closed)