import System.Plugins import API main = do let plist = ["../Plugin1.o", "../Plugin2.o", "../Plugin3.o"] plugins <- mapM (\p -> load p ["../api"] [] "resource") plist let functions = map (valueOf . fromLoadSuc) plugins -- apply the function from each plugin in turn mapM_ (\f -> putStrLn $ f "haskell is for hackers") functions fromLoadSuc (LoadFailure _) = error "load failed" fromLoadSuc (LoadSuccess _ v) = v