blob: 08081ed6fd3908b6d76dc0554a88f54c9be5dc18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds, PolyKinds,
GADTs #-}
module T8031 where
import Data.Proxy
import Data.Kind
data SList :: [k] -> Type where
SCons :: Proxy h -> Proxy t -> SList (h ': t)
$( [d| foo :: forall (a :: k). Proxy a
-> forall (b :: [k]). Proxy b
-> SList (a ': b)
foo a b = SCons a b |] )
|