quickcheck-state-machine-0.9.0: Test monadic programs using state machine based models
Safe HaskellSafe-Inferred
LanguageHaskell2010

Test.StateMachine.TreeDiff.Expr

Contents

Description

This module uses Expr for richer diffs than based on Tree.

Synopsis

Types

data Expr Source #

A untyped Haskell-like expression.

Having richer structure than just Tree allows to have richer diffs.

Constructors

App ConstructorName [Expr]

application

Rec ConstructorName (Map FieldName Expr)

record constructor

Lst [Expr]

list constructor

Instances

Instances details
Arbitrary Expr Source # 
Instance details

Defined in Test.StateMachine.TreeDiff.Expr

Methods

arbitrary :: Gen Expr #

shrink :: Expr -> [Expr] #

Show Expr Source # 
Instance details

Defined in Test.StateMachine.TreeDiff.Expr

Methods

showsPrec :: Int -> Expr -> ShowS #

show :: Expr -> String #

showList :: [Expr] -> ShowS #

Eq Expr Source # 
Instance details

Defined in Test.StateMachine.TreeDiff.Expr

Methods

(==) :: Expr -> Expr -> Bool #

(/=) :: Expr -> Expr -> Bool #

ToExpr Expr Source # 
Instance details

Defined in Test.StateMachine.TreeDiff.Class

type ConstructorName = String Source #

Constructor name is a string

type FieldName = String Source #

Record field name is a string too.

data EditExpr Source #

Type used in the result of ediff.

Instances

Instances details
Show EditExpr Source # 
Instance details

Defined in Test.StateMachine.TreeDiff.Expr

data Edit a Source #

List edit operations

The Swp constructor is redundant, but it let us spot a recursion point when performing tree diffs.

Constructors

Ins a

insert

Del a

delete

Cpy a

copy unchanged

Swp a a

swap, i.e. delete + insert

Instances

Instances details
Show a => Show (Edit a) Source # 
Instance details

Defined in Test.StateMachine.TreeDiff.List

Methods

showsPrec :: Int -> Edit a -> ShowS #

show :: Edit a -> String #

showList :: [Edit a] -> ShowS #

exprDiff :: Expr -> Expr -> Edit EditExpr Source #

Diff two Expr.

For examples see ediff in Data.TreeDiff.Class.