@@ -35,7 +35,7 @@ module Text.Pandoc.Lua (LuaException (..), pushPandocModule, runLuaFilter) where
35import Control.Monad (mplus, unless, when, (>=>))
35import Control.Monad (mplus, unless, when, (>=>))
36import Control.Monad.Trans (MonadIO (..))
36import Control.Monad.Trans (MonadIO (..))
37import Data.Data (DataType, Data, toConstr, showConstr, dataTypeOf,
37import Data.Data (DataType, Data, toConstr, showConstr, dataTypeOf,
38− dataTypeConstrs, dataTypeName)
38+ dataTypeConstrs, dataTypeName, tyconUQname)
39import Data.Foldable (foldrM)
39import Data.Foldable (foldrM)
40import Data.Map (Map)
40import Data.Map (Map)
41import Data.Maybe (isJust)
41import Data.Maybe (isJust)
@@ -127,7 +127,7 @@ newtype LuaFilterFunction = LuaFilterFunction { functionIndex :: Int }
127tryFilter :: (Data a, FromLuaStack a, ToLuaStack a) => FunctionMap -> a -> Lua a
127tryFilter :: (Data a, FromLuaStack a, ToLuaStack a) => FunctionMap -> a -> Lua a
128tryFilter fnMap x =
128tryFilter fnMap x =
129 let filterFnName = showConstr (toConstr x)
129 let filterFnName = showConstr (toConstr x)
130− catchAllName = dataTypeName (dataTypeOf x)
130+ catchAllName = tyconUQname $ dataTypeName (dataTypeOf x)
132 case Map.lookup filterFnName fnMap `mplus` Map.lookup catchAllName fnMap of
132 case Map.lookup filterFnName fnMap `mplus` Map.lookup catchAllName fnMap of
133 Just fn -> runFilterFunction fn x
133 Just fn -> runFilterFunction fn x