diff --git a/src/runtime/c/pgf/pgf.c b/src/runtime/c/pgf/pgf.c index a8c6bb800..a1649b9ff 100644 --- a/src/runtime/c/pgf/pgf.c +++ b/src/runtime/c/pgf/pgf.c @@ -195,7 +195,7 @@ pgf_print_name(PgfConcr* concr, PgfCId id) return name; } -PGF_API bool +PGF_API int pgf_has_linearization(PgfConcr* concr, PgfCId id) { PgfCncOverloadMap* overl_table = diff --git a/src/runtime/c/pgf/pgf.h b/src/runtime/c/pgf/pgf.h index cf2d85212..632a1d332 100644 --- a/src/runtime/c/pgf/pgf.h +++ b/src/runtime/c/pgf/pgf.h @@ -94,7 +94,7 @@ pgf_function_prob(PgfPGF* pgf, PgfCId funname); PGF_API_DECL GuString pgf_print_name(PgfConcr*, PgfCId id); -PGF_API_DECL bool +PGF_API_DECL int pgf_has_linearization(PgfConcr* concr, PgfCId id); PGF_API_DECL void diff --git a/src/runtime/haskell-bind/PGF2.hsc b/src/runtime/haskell-bind/PGF2.hsc index a23982465..93158213f 100644 --- a/src/runtime/haskell-bind/PGF2.hsc +++ b/src/runtime/haskell-bind/PGF2.hsc @@ -580,8 +580,9 @@ parseWithOracle lang cat sent (predict,complete,literal) = -- | Returns True if there is a linearization defined for that function in that language hasLinearization :: Concr -> Fun -> Bool hasLinearization lang id = unsafePerformIO $ - withGuPool $ \pl -> - newUtf8CString id pl >>= pgf_has_linearization (concr lang) + withGuPool $ \pl -> do + res <- newUtf8CString id pl >>= pgf_has_linearization (concr lang) + return (res /= 0) -- | Linearizes an expression as a string in the language linearize :: Concr -> Expr -> String diff --git a/src/runtime/haskell-bind/PGF2/FFI.hs b/src/runtime/haskell-bind/PGF2/FFI.hs index d01084d62..7379aa723 100644 --- a/src/runtime/haskell-bind/PGF2/FFI.hs +++ b/src/runtime/haskell-bind/PGF2/FFI.hs @@ -192,7 +192,7 @@ foreign import ccall "pgf/pgf.h pgf_print_name" pgf_print_name :: Ptr PgfConcr -> CString -> IO CString foreign import ccall "pgf/pgf.h pgf_has_linearization" - pgf_has_linearization :: Ptr PgfConcr -> CString -> IO Bool + pgf_has_linearization :: Ptr PgfConcr -> CString -> IO CInt foreign import ccall "pgf/pgf.h pgf_linearize" pgf_linearize :: Ptr PgfConcr -> PgfExpr -> Ptr GuOut -> Ptr GuExn -> IO ()