content: 
  import System.Plugins
  
  import System.Directory
  
  a    = "Foo.hs" -- uesr code
  b    = "Bar.hs" -- trusted code. Result is "Bar.o"
  c    = "Out.hs"
  
  main = do
          status <- mergeTo a b c
          f <- case status of
                  MergeFailure e     -> error "mergeto failure"
                  MergeSuccess _ _ f -> return f
          print $ f == c
  
          status <- mergeTo a b c
          f' <- case status of
                  MergeFailure e          -> error "mergeto failure"
                  MergeSuccess ReComp _ f -> error "unnec. mergeto"
                  MergeSuccess NotReq _ f -> return f -- good, not req
  
          print $ f == f' && f == c
  
          status <- make f' []
          o <- case status of
                    MakeFailure   e -> error "make failed"
                    MakeSuccess _ o -> return o
  
          m_v   <- load o [] [] "resource"
          v <- case m_v of
              LoadSuccess _ v -> return v
              _               -> error "load failed"
          putStrLn $ show $ (v :: Int)
  
          makeCleaner c
  
  