hsclass NFData a where
rnf :: a -> ()
rnf a = a `seq` ()
rnf
はreduce to normal-formの略 a
を正規形に変換して ()
を返す force :: NFData a => a -> a
deepseq :: NFData a => a -> b -> b
seq
で十分hsinstance NFData Char
rnf
と seq
で連結すればいいhsinstance NFData a => NFData (Tree a) where
rnf Empty = ()
rnf (Branch l a r) = rnf l `seq` rnf a `seq` rnf r