{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE CPP #-} module Main where #if __GLASGOW_HASKELL__ >= 802 import GHC.TypeLits import Html.Type.Internal import Data.Proxy main :: IO () main = pure () where _x_ = undefined :: Test type Test = ( ToList () == Empty , ToList Int == Split , ToList (Proxy "a") == 'FingerTree '[] "a" , ToList ('A > Char) == 'FingerTree '[""] "" , ToList ('A > Char # 'Div > Int) == 'FingerTree '["", "
"] "
" , ToList (('Div :@: ('ClassA := Int)) Int) == 'FingerTree '["
"] "
" , ToList (('Div :@: ('ClassA := ())) Int) == 'FingerTree '["
"] "
" , ToList (('Div :@: ('ClassA := ())) ()) == 'FingerTree '[] "
" , ToList (('Div :@: ('ClassA := () # 'IdA := ())) ()) == 'FingerTree '[] "
" , ToList (('Div :@: ('ClassA := () # 'IdA := Proxy "ab")) ()) == 'FingerTree '[] "
" ) type family a == b where a == a = () a == b = TypeError ('Text "Unequal types:" ':$$: 'ShowType a ':$$: 'ShowType b) #else main :: IO () main = pure () #endif