{-# LANGUAGE TemplateHaskell #-}
module Template where
import Arity
import Data.Derive.TopDown.IsInstance
import Language.Haskell.Syntax
import Language.Haskell.TH.Syntax
hiding ( Exp )
import Test.HUnit
import Types
import Utils
arityCompany = TestCase
(assertEqual
"Company is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''Company]]))
)
arityI = TestCase
(assertEqual "I is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''I]]))
)
arityB = TestCase
(assertEqual "B is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''B]]))
)
arityT = TestCase
(assertEqual "T is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''T]]))
)
arityT1 = TestCase
(assertEqual "T1 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''T1]]))
)
arityT2 = TestCase
(assertEqual "T2 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''T2]]))
)
arityT3 = TestCase
(assertEqual "T3 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''T3]]))
)
arityR0 = TestCase
(assertEqual "T0 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''R0]]))
)
arityR6 = TestCase
(assertEqual "R6 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''R6]]))
)
arityRx0 = TestCase
(assertEqual "Rx0 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''Rx0]]))
)
arityRx3 = TestCase
(assertEqual "Rx6 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''Rx3]]))
)
arityT4 = TestCase
(assertEqual "T4 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''T4]]))
)
arityColonEqColon = TestCase
(assertEqual ":=: is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''(:=:)]]))
)
arityT5 = TestCase
(assertEqual "T5 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''T5]]))
)
arityExp = TestCase
(assertEqual "Exp is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''Exp]]))
)
arityP1 = TestCase
(assertEqual "P1 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''P1]]))
)
arityP2 = TestCase
(assertEqual "P2 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''P2]]))
)
arityList = TestCase
(assertEqual "List is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''List]]))
)
arityStream = TestCase
(assertEqual
"Stream is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''Stream]]))
)
arityC = TestCase
(assertEqual "C is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''C]]))
)
arityD = TestCase
(assertEqual "D is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''D]]))
)
arityIO_ = TestCase
(assertEqual "IO_ is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''IO_]]))
)
arityF32 = TestCase
(assertEqual "F32 is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''F32]]))
)
arityHsModule = TestCase
(assertEqual
"HsModule is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''HsModule]]))
)
arityHsDecl = TestCase
(assertEqual
"HsDecl is instance of Arity"
True
$((qBoolToExp $ isInstance' ''TypeArity [apps [ConT ''HsDecl]]))
)