-- ==========================================================-- -- === Monster -- Enumerates the points in a lattice. ===-- -- === Not part of the strictness analyser proper. ===-- -- === Monster.hs ===-- -- ==========================================================-- module Main where import BaseDefs import MyUtils import Utils import AbstractVals2 import SuccsAndPreds2 import AbstractMisc pretty x = f 0 0 x where f n h [] = "\n\nDone: " ++ show n ++ " total points, " ++ show h ++ " height.\n" f n h (x:xs) = "\n " ++ show (h+1) ++ " contains " ++ show x ++ f (n+x) (h+1) xs main = putStr banner >> getContents >>= \ inText -> let d = first (head (reads inText)) in mySeq d (putStr ("\n\n" ++ pretty (map length (amAllUpSlices d)))) where banner = concat [ "\nMonster 0.400r: generates all points in a domain.\n", "Copyright (c) Julian Seward 1992", "\n\nEnter the domain: " ] -- ==========================================================-- -- === end Monster.hs ===-- -- ==========================================================--