~# is always in scope with TypeOperators
TypeOperators is turned on,
~# comes into scope automatically. As far as I know, this extremely magical operator really isn't supposed to be in Haskell at all, but if it is, it should surely be hidden in
GHC.Prim or some such.
# LANGUAGE GADTs, TypeOperators #
foo :: a ~# Int -> ()
foo = () -- No arguments, because of a magical
Constraint swap or something.