{-# LANGUAGE CPP, NoImplicitPrelude, PackageImports #-}
#if __GLASGOW_HASKELL__ >= 702
{-# LANGUAGE Trustworthy #-}
#endif
#if __GLASGOW_HASKELL__ >= 708
{-# LANGUAGE ExplicitNamespaces #-}
#endif
module Data.Type.Equality.Compat (
-- * The equality types
(:~:)(..),
#if __GLASGOW_HASKELL__ >= 800
type (~~),
#endif
#if __GLASGOW_HASKELL__ >= 800
(:~~:)(..),
#endif
-- * Working with equality
sym, trans, castWith, gcastWith,
#if __GLASGOW_HASKELL__ >= 706
apply,
#endif
inner,
#if __GLASGOW_HASKELL__ >= 706
outer,
#endif
-- * Inferring equality from other types
TestEquality(..),
#if __GLASGOW_HASKELL__ >= 708
-- * Boolean type-level equality
type (==),
#endif
) where
#if MIN_VERSION_base(4,7,0)
import "base" Data.Type.Equality
#else
import "type-equality" Data.Type.Equality
#endif
#if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,10,0)
import "type-equality" Data.Type.Equality.Hetero
#endif