Static pointers should work with RebindableSyntax
When RebindableSyntax
is enabled, GHC uses functions such as fromInteger
, fromString
from scope, rather than relying on the typeclasses. This principle is not upheld for fromStaticPtr
:
{-# LANGUAGE RebindableSyntax, StaticPointers, NoMonomorphismRestriction #-}
module M where
data T = MkT
fromInteger :: a -> T
fromInteger _ = MkT
fromStaticPtr :: a -> T
fromStaticPtr _ = MkT
x = 0
y = static 'a'
gives
x :: T
y :: GHC.StaticPtr.IsStatic t => t GHC.Types.Char
The type of y
should be T
, just like x
.