packages feed

multivariant-0.1.0.1: app/Main.hs

{-|
Module      : Lib
Description : Example usage of library
Copyright   : (c) Anton Marchenko, Mansur Ziatdinov, 2016-2017
License     : BSD-3
Maintainer  : gltronred@gmail.com
Stability   : experimental
Portability : POSIX

This module provides 'appMain' function that prints variants for 'Task.task'

See "Task" module for more description
-}

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Test.Multivariant.Types

import Task (task, inputVariants, printTask)

import Data.List (zip4)

-- | Prints all variants from 'Task.task'
appMain :: IO ()
appMain = do
  let descriptions = getDescription task
      solutions = getSolutions task
      cases = getCases task
  mapM_ (\(i,d,s,c) -> printTask i d inputVariants s c) $
    zip4 [1..] descriptions solutions cases

main = appMain