{-# LANGUAGE UnicodeSyntax #-} import Control.Applicative ((<$>)) import Data.Monoid (mempty) import System.Log.Logger (Priority(..),rootLoggerName,setLevel,updateGlobalLogger) import LogicGrowsOnTrees.Parallel.Adapter.MPI import LogicGrowsOnTrees.Parallel.ExplorationMode import LogicGrowsOnTrees.Parallel.Main import LogicGrowsOnTrees.Parallel.Purity (Purity(Pure)) main = -- updateGlobalLogger rootLoggerName (setLevel DEBUG) >> (withMPI $ runExplorer (const AllMode) Pure (return ((),())) (const $ return ()) (const $ return [()]) (const . const $ return mempty) (const . const $ return ()) ) >>= \x → case runTerminationReason . snd <$> x of Nothing → return () Just (Aborted progress) → error $ "Explorer aborted with progress " ++ show progress ++ "." Just (Completed [()]) → putStrLn $ "Trivial search completed successfully." Just (Completed result) → error $ "Result was " ++ show result ++ " not [()]." Just (Failure progress description) → error $ "Explorer failed with progress " ++ show progress ++ " and reason " ++ show description ++ "."