vinyl-0.4: Data/Vinyl/TyFun.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
module Data.Vinyl.TyFun where
data TyFun :: * -> * -> *
type family App (f :: TyFun k l -> *) (a :: k) :: l
data TC :: (k -> *) -> TyFun k * -> *
type instance App (TC t) x = t x
type f $ x = App f x