syb-0.2: tests/Labels.hs
{-# OPTIONS -fglasgow-exts #-}
module Labels (tests) where
-- This module tests availability of field labels.
import Test.HUnit
import Data.Generics
-- A datatype without labels
data NoLabels = NoLabels Int Float
deriving (Typeable, Data)
-- A datatype with labels
data YesLabels = YesLabels { myint :: Int
, myfloat :: Float
}
deriving (Typeable, Data)
-- Test terms
noLabels = NoLabels 42 3.14
yesLabels = YesLabels 42 3.14
-- Main function for testing
tests = ( constrFields $ toConstr noLabels
, constrFields $ toConstr yesLabels
) ~=? output
output = ([],["myint","myfloat"])