Update examples

This commit is contained in:
Don Stewart
2005-09-03 04:45:14 +00:00
parent 5321754614
commit dff0363224
421 changed files with 19 additions and 9 deletions

View File

@ -0,0 +1,3 @@
TEST= pdynload/spj3
TOP=../../..
include ../../build.mk

View File

@ -0,0 +1,5 @@
module Plugin where
import API
resource = plugin { function = (+) :: Int -> Int -> Int }

View File

@ -0,0 +1,9 @@
module API where
data Interface = Interface {
function :: (Num a) => a -> a -> a
}
plugin :: Interface
plugin = Interface { function = error "no function defined" }

View File

@ -0,0 +1,18 @@
import System.Plugins
import API
src = "../Plugin.hs"
wrap = "../Wrapper.hs"
apipath = "../api"
main = do status <- make src ["-i"++apipath]
case status of
MakeSuccess _ _ -> f
MakeFailure e -> mapM_ putStrLn e
where f = do v <- pdynload "../Plugin.o" ["../api"] [] "API.Interface" "resource"
case v of
LoadSuccess _ a -> let fn = function a in putStrLn $ show $ 1 `fn` 2
_ -> putStrLn "wrong types"

View File

@ -0,0 +1,8 @@
../Plugin.hs:5:
Cannot unify the type-signature variable `a' with the type `Int'
Expected type: a -> a -> a
Inferred type: Int -> Int -> Int
When checking the type signature of the expression:
(+) :: Int -> Int -> Int
In the `function' field of a record

View File

@ -0,0 +1,9 @@
../Plugin.hs:5:31:
Couldn't match the rigid variable `a' against `Int'
`a' is bound by the polymorphic type `forall a. (Num a) => a -> a -> a'
at ../Plugin.hs:5:11-56
Expected type: a -> a -> a
Inferred type: Int -> Int -> Int
In the expression: (+) :: Int -> Int -> Int
In the `function' field of a record

View File

@ -0,0 +1,9 @@
../Plugin.hs:5:31:
Couldn't match the rigid variable `a' against `Int'
`a' is bound by the polymorphic type `forall a. (Num a) => a -> a -> a'
at ../Plugin.hs:5:11-56
Expected type: a -> a -> a
Inferred type: Int -> Int -> Int
In the expression: (+) :: Int -> Int -> Int
In the `function' field of a record