HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Moduletree-diff-0.3.4Haskell2010

Data.TreeDiff.Class

A ToExpr class.

  • 2 classes
  • 4 values
  • Packagetree-diff-0.3.4
  • Exports6
  • LanguageHaskell2010
  • LicenceGPL-2.0-or-later
  • SourceClass.hs
valueediff :: ToExpr a => a -> a -> Edit EditExpr
#

Difference between two ToExpr values.

Example3 expressions
let x = (1, Just 2) :: (Int, Maybe Int)let y = (1, Nothing)prettyEditExpr (ediff x y)_×_ 1 -(Just 2) +Nothing
Example2 expressions
data Foo = Foo { fooInt :: Either Char Int, fooBool :: [Maybe Bool], fooString :: String } deriving (Eq, Generic)instance ToExpr Foo
Example1 expression
prettyEditExpr $ ediff (Foo (Right 2) [Just True] "fo") (Foo (Right 3) [Just True] "fo")Foo {fooInt = Right -2 +3, fooBool = [Just True], fooString = "fo"}
Example1 expression
prettyEditExpr $ ediff (Foo (Right 42) [Just True, Just False] "old") (Foo (Right 42) [Nothing, Just False, Just True] "new")Foo {  fooInt = Right 42,  fooBool = [-Just True, +Nothing, Just False, +Just True],  fooString = -"old" +"new"}
valueediff' :: (ToExpr a, ToExpr b) => a -> b -> Edit EditExpr
#

Compare different types.

Note: Use with care as you can end up comparing apples with oranges.

Example1 expression
prettyEditExpr $ ediff' ["foo", "bar"] [Just "foo", Nothing][-"foo", +Just "foo", -"bar", +Nothing]
classclass ToExpr a where
#

toExpr converts a Haskell value into untyped Haskell-like syntax tree, Expr.

Example1 expression
toExpr ((1, Just 2) :: (Int, Maybe Int))App "_\215_" [App "1" [],App "Just" [App "2" []]]

Methods

Instances75ToExpr, …
  • ToExpr KeyDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr ValueDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr ByteArrayDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr ByteStringDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    traverse_ (print . prettyExpr . toExpr . BS8.pack) ["", "\n", "foo", "foo\n", "foo\nbar", "foo\nbar\n"]"""\n""foo""foo\n"BS.concat ["foo\n", "bar"]BS.concat ["foo\n", "bar\n"]
  • ToExpr ByteStringDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    traverse_ (print . prettyExpr . toExpr . LBS8.pack) ["", "\n", "foo", "foo\n", "foo\nbar", "foo\nbar\n"]"""\n""foo""foo\n"LBS.concat ["foo\n", "bar"]LBS.concat ["foo\n", "bar\n"]
  • ToExpr ShortByteStringDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    traverse_ (print . prettyExpr . toExpr . SBS.toShort . BS8.pack) ["", "\n", "foo", "foo\n", "foo\nbar", "foo\nbar\n"]"""\n""foo""foo\n"mconcat ["foo\n", "bar"]mconcat ["foo\n", "bar\n"]
  • ToExpr IntSetDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr IntegerDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr NaturalDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr VoidDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Int16Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Int32Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Int64Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Int8Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Word16Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Word32Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Word64Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr Word8Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr BoolDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr CharDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    prettyExpr $ toExpr 'a''a'
    Example1 expression
    prettyExpr $ toExpr "Hello world""Hello world"
    Example1 expression
    prettyExpr $ toExpr "Hello\nworld"concat ["Hello\n", "world"]
    Example1 expression
    traverse_ (print . prettyExpr . toExpr) ["", "\n", "foo", "foo\n", "foo\nbar", "foo\nbar\n"]"""\n""foo""foo\n"concat ["foo\n", "bar"]concat ["foo\n", "bar\n"]
  • ToExpr DoubleDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr FloatDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr IntDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr OrderingDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr WordDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr ScientificDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    prettyExpr $ toExpr (123.456 :: Scientific)scientific 123456 `-3`
  • ToExpr TextDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    traverse_ (print . prettyExpr . toExpr . T.pack) ["", "\n", "foo", "foo\n", "foo\nbar", "foo\nbar\n"]"""\n""foo""foo\n"T.concat ["foo\n", "bar"]T.concat ["foo\n", "bar\n"]
  • ToExpr TextDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    traverse_ (print . prettyExpr . toExpr . LT.pack) ["", "\n", "foo", "foo\n", "foo\nbar", "foo\nbar\n"]"""\n""foo""foo\n"LT.concat ["foo\n", "bar"]LT.concat ["foo\n", "bar\n"]
  • ToExpr DayDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    prettyExpr $ toExpr $ ModifiedJulianDay 58014Day "2017-09-18"
  • ToExpr UTCTimeDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr ExprDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr UUIDDefined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    prettyExpr $ toExpr UUID.nilUUID "00000000-0000-0000-0000-000000000000"
  • ToExpr ()Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (KeyMap a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (First a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Last a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Max a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Min a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Tree a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (NonEmpty a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Identity a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    prettyExpr $ toExpr $ Identity 'a'Identity 'a'
  • ToExpr a => ToExpr (First a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Last a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Dual a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Product a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Sum a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (ZipList a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Maybe a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Hashed a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Maybe a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Vector a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr [a]Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr k => ToExpr (Set k)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr k => ToExpr (HashSet k)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr v => ToExpr (IntMap v)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr v => ToExpr (Seq v)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, Storable a) => ToExpr (Vector a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, Integral a) => ToExpr (Ratio a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
    Example1 expression
    prettyExpr $ toExpr (3 % 12 :: Rational)_%_ 1 4
  • (ToExpr a, Prim a) => ToExpr (Vector a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, Unbox a) => ToExpr (Vector a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • HasResolution a => ToExpr (Fixed a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr (Proxy a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b) => ToExpr (Either a b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b) => ToExpr (Either a b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b) => ToExpr (These a b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b) => ToExpr (Pair a b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b) => ToExpr (These a b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b) => ToExpr (a, b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr k, ToExpr v) => ToExpr (Map k v)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr k, ToExpr v) => ToExpr (HashMap k v)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Const a b)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • ToExpr a => ToExpr (Tagged t a)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b, ToExpr c) => ToExpr (a, b, c)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b, ToExpr c, ToExpr d) => ToExpr (a, b, c, d)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class
  • (ToExpr a, ToExpr b, ToExpr c, ToExpr d, ToExpr e) => ToExpr (a, b, c, d, e)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class

Generics

2 declarations
valuegenericToExpr :: (Generic a, GToExpr (Rep a)) => a -> Expr
#

Generic toExpr.

Example2 expressions
data Foo = Foo Int Char deriving GenericgenericToExpr (Foo 42 'x')App "Foo" [App "42" [],App "'x'" []]
classclass GToExpr (f :: Type -> Type) where
#
Instances1GToExpr
  • GSumToExpr f => GToExpr (M1 i c f)Defined in tree-diff-0.3.4 · Data.TreeDiff.Class