module Main where import DataTypeUtils(A(..),Tree(..),List(..),fullTree) import ReadShowInstances() import System(getArgs) main = do args <- getArgs print $ checkA && checkAA && checkTreeAA (handleargs args) defaultdepth :: Int defaultdepth = 4 handleargs :: [String] -> Int handleargs [] = defaultdepth handleargs (s:_) = read s valueA :: A Int valueA = C (D (C B) 1 B) showvalueA :: String showvalueA = show valueA checkA :: Bool checkA = read showvalueA == valueA -- more complex valueAA :: A (A Int) valueAA = D B valueA B showvalueAA :: String showvalueAA = show valueAA checkAA :: Bool checkAA = read showvalueAA == valueAA -- and a bigger example checkTreeAA :: Int -> Bool checkTreeAA n = read showvalueTreeAA == valueTreeAA where valueTreeAA :: Tree (A (A Int)) valueTreeAA = fullTree n valueAA showvalueTreeAA :: String showvalueTreeAA = show valueTreeAA