packages feed

edit-0.0.1.0: tests/Data/EditSpec.hs

{-# LANGUAGE ViewPatterns #-}

module Data.EditSpec where

import Data.Edit
import Test.QuickCheck.Function

prop_EditApplicativeIdentity :: Edit Int -> Bool
prop_EditApplicativeIdentity v = (pure id <*> v) == v

prop_EditApplicativeComposition
  :: Edit (Fun Int Int) -> Edit (Fun Int Int) -> Edit Int -> Bool
prop_EditApplicativeComposition (fmap apply -> u) (fmap apply -> v) w
  = (pure (.) <*> u <*> v <*> w) == (u <*> (v <*> w))