#7243: regression: acceptable foreign result types
---------------------------------------+------------------------------------
Reporter: dmwit | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.6.1 | Keywords:
Os: Unknown/Multiple | Architecture: x86_64 (amd64)
Failure: GHC rejects valid program | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------------+------------------------------------
The following short file is rejected:
{{{
import Foreign.Ptr
foreign import ccall "wrapper" foo :: IO (FunPtr ())
}}}
The error is:
{{{
test.hs:2:1:
Unacceptable type in foreign declaration: IO (FunPtr ())
When checking declaration:
foreign import ccall safe "wrapper" foo :: IO (FunPtr ())
}}}
However, my reading of the 2010 Report suggests this should be acceptable.
Specifically:
* Prelude.IO t is a marshallable foreign result type when t is a
marshallable foreign type,[[BR]]
* all basic foreign types are marshallable foreign types, and[[BR]]
* FunPtr a is a basic foreign type for all a.
(Political note: I include this chain of reasoning not because I think
others too stupid to recreate it, but because I think it likely that I am
not reading the Report correctly, and want to make it easy to detect and
correct any misconceptions I have.)
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7243>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs