summaryrefslogtreecommitdiff
path: root/Haskell-book/18/Instance/test/Spec.hs
blob: ea250fc416cc5fd4639079d892b66765fbae9ed0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import Sum
import Nope
import qualified PhhhbbtttEither as Phhhbbttt
import Identity
import List
import Test.QuickCheck.Checkers
import Test.QuickCheck.Classes

main :: IO ()
main = do
    quickBatch $ functor $ (First (1, 2, 3) :: Sum (Int, Int, Int) (Int, Int, Int))
    quickBatch $ applicative $ (First (1, 2, 3) :: Sum (Int, Int, Int) (Int, Int, Int))
    quickBatch $ monad $ (First (1, 2, 3) :: Sum (Int, Int, Int) (Int, Int, Int))

    quickBatch $ functor $ (NopeDotJpg :: Nope (Int, Int, Int))
    quickBatch $ applicative $ (NopeDotJpg :: Nope (Int, Int, Int))
    quickBatch $ monad $ (NopeDotJpg :: Nope (Int, Int, Int))

    quickBatch $ functor $ (Phhhbbttt.Left (1, 2, 3) :: Phhhbbttt.PhhhbbtttEither (Int, Int, Int) (Int, Int, Int))
    quickBatch $ applicative $ (Phhhbbttt.Left (1, 2, 3) :: Phhhbbttt.PhhhbbtttEither (Int, Int, Int) (Int, Int, Int))
    quickBatch $ monad $ (Phhhbbttt.Left (1, 2, 3) :: Phhhbbttt.PhhhbbtttEither (Int, Int, Int) (Int, Int, Int))

    quickBatch $ functor $ (Identity (1, 2, 3) :: Identity (Int, Int, Int))
    quickBatch $ applicative $ (Identity (1, 2, 3) :: Identity (Int, Int, Int))
    quickBatch $ monad $ (Identity (1, 2, 3) :: Identity (Int, Int, Int))

    quickBatch $ functor (Cons (1 :: Integer, 2 :: Integer, 3 :: Integer) Nil)
    quickBatch $ applicative (Cons (1 :: Integer, 2 :: Integer, 3 :: Integer) Nil)
    quickBatch $ monad (Cons (1 :: Integer, 2 :: Integer, 3 :: Integer) Nil)