{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeInType #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-} module Main where import GHC.TypeLits import Html.Type.Internal import Data.Proxy main :: IO () main = pure () where _x_ = undefined :: Test type Demote (t :: k) = k type Test = ( ToList () == 'List '[] "" , ToList Int == 'List '[""] "" , ToList (Proxy "a") == 'List '[] "a" , ToList (Demote 'A :> Char) == 'List '[""] "" , ToList (Demote 'A :> Char # Demote 'Div :> Int) == 'List '["", "