diff --git a/morpheus-graphql-server/src/Data/Morpheus/Server/Types/TypeName.hs b/morpheus-graphql-server/src/Data/Morpheus/Server/Types/TypeName.hs index 933d4b6d2..0bb9261b3 100644 --- a/morpheus-graphql-server/src/Data/Morpheus/Server/Types/TypeName.hs +++ b/morpheus-graphql-server/src/Data/Morpheus/Server/Types/TypeName.hs @@ -76,7 +76,7 @@ instance Hashable TypeFingerprint where hashWithSalt s (CustomFingerprint x) = hashWithSalt s (3 :: Int, x) typeableTypename :: (Typeable a) => f a -> TypeName -typeableTypename = packName . intercalate "" . fmap (pack . tyConName . replacePairCon) . getTypeConstructors +typeableTypename = packName . intercalate "" . fmap (pack . dropLeadingTick . tyConName . replacePairCon) . getTypeConstructors toCategory :: CatType c a -> TypeCategory toCategory InputType = IN @@ -92,6 +92,10 @@ typeableFingerprint p = getTypeConstructors :: (Typeable a) => f a -> [TyCon] getTypeConstructors = ignoreResolver . splitTyConApp . typeRep +-- Filter out ticks from promoted constructors +dropLeadingTick :: String -> String +dropLeadingTick = Prelude.dropWhile (== '\'') + rep :: forall k (a :: k) f. (Typeable a) => f a -> TyCon rep = typeRepTyCon . typeRep