{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE UnicodeSyntax #-} import Data.Functor import System.Console.CmdTheLine import LogicGrowsOnTrees.Parallel.Adapter.Processes import LogicGrowsOnTrees.Parallel.Main import LogicGrowsOnTrees.Utils.WordSum import LogicGrowsOnTrees.Examples.Queens main = mainForExploreTree driver (getBoardSize <$> required (flip (pos 0) (posInfo { posName = "BOARD_SIZE" , posDoc = "board size" } ) Nothing)) (defTI { termDoc = "count the number of n-queens solutions for a given board size" }) (\_ (RunOutcome _ termination_reason) → do case termination_reason of Aborted _ → error "search aborted" Completed (WordSum count) → print count Failure _ message → error $ "error: " ++ message ) nqueensCount