packages feed

speculate-0.3.5: bench/qs1/arithficial.hs

import Test.QuickSpec

f :: Num a => a -> a -> a
f x y = x*17+23

g :: Num a => a -> a -> a
g x y = 42

h :: Num a => a -> a -> a
h x y = y*13+19

type I = Int

main =
  quickSpec
    [ ["x", "y", "z", "w"] `vars` (undefined :: I)
    , "0"  `fun0` (0   :: I)
    , "id" `fun1` (id :: I -> I)
    , "+"  `fun2` ((+) :: I -> I -> I)
    , "f"  `fun2` (f :: I -> I -> I)
    , "g"  `fun2` (g :: I -> I -> I)
    , "h"  `fun2` (h :: I -> I -> I)
    ]