nom-0.1.0.0: src/Language/Nominal/Properties/UtilitiesSpec.hs
module Language.Nominal.Properties.UtilitiesSpec
where
import Data.Data
import Language.Nominal.Utilities
import Language.Nominal.Name
import Language.Nominal.Properties.SpecUtilities ()
-- | Find integers and increment them
superSucc :: Data x => x -> x
superSucc = rewrite $ Just . (succ :: Int -> Int)
-- | Rewrite rewrites inside a @[Int]@
prop_test_rewrite1 :: [Int] -> Bool
prop_test_rewrite1 x = superSucc x == fmap succ x
-- | Rewrite rewrites inside a list of 'Int'-labelled names
prop_test_rewrite2 :: [Name Int] -> Bool
prop_test_rewrite2 x = superSucc x == fmap (fmap succ) x