packages feed

MicroHs-0.15.0.0: tests/Arith64.hs

module Arith64 where
import Data.Int
import Data.Word

vals :: [Int64]
vals = [-5, -2, -1, 0, 1, 2, 5]

uvals :: [Word64]
uvals = [-5, -2, -1, 0, 1, 2, 5]

main :: IO ()
main = do
  print [ op x y | x <- vals, y <- vals, op <- [(+),( - ),(*)] ]
  print [ op x y | x <- vals, y <- vals, y /= 0, op <- [quot, rem] ]
  print [ op x y | x <- vals, y <- vals, op <- [(==),(/=),(<),(<=),(>),(>=)] ]
  print [ op x y | x <- vals, y <- vals, let op = compare ]
  print [ minBound, maxBound :: Int64]

  print [ op x y | x <- uvals, y <- uvals, op <- [(+),( - ),(*)] ]
  print [ op x y | x <- uvals, y <- uvals, y /= 0, op <- [quot, rem] ]
  print [ op x y | x <- uvals, y <- uvals, op <- [(==),(/=),(<),(<=),(>),(>=)] ]
  print [ op x y | x <- uvals, y <- uvals, let op = compare ]
  print [ minBound, maxBound :: Word64]