{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE FlexibleInstances #-}
module Data.Tapioca.Internal.Types.Match where
import GHC.TypeLits
import Data.Kind
type family Match (t :: Type) (s :: Symbol) :: Bool
type family OrdBool (o :: Ordering) :: Bool where
OrdBool 'LT = 'False
OrdBool 'EQ = 'True
OrdBool 'GT = 'False
type EqSymbol s s' = OrdBool (CmpSymbol s s')