The Proxy :: k -> * type, found in Data.Proxy, is used when you need to give the compiler some type information - eg, to pick a type class instance - which is nonetheless irrelevant at runtime.
{-# LANGUAGE PolyKinds #-}
data Proxy a = Proxy
Functions which use a Proxy typically use Scoped...