packages feed

idris-0.9.19.1: benchmarks/quasigroups/Main.idr

module Main

import System
import Parser
import Solver

main : IO ()
main = do
  args <- getArgs
  case args of
    [_, path] => do
      f <- readFile path
      case parse f of
        Left err => putStrLn err
        Right (_ ** (board ** legal)) => do
          putStrLn "Got board:"
          printLn board
          putStrLn "Solving..."
          case fillBoard board legal of
            Nothing => putStrLn "No solution found"
            Just (solved ** _) => do
              putStrLn "Solution found:"
              printLn solved
    [self] => putStrLn ("Usage: " ++ self ++ " <board file>")