{-|
Copyright  :  (C) 2016, University of Twente
License    :  BSD2 (see the file LICENSE)
Maintainer :  Christiaan Baaij <christiaan.baaij@gmail.com>
-}

{-# OPTIONS_GHC -Wno-unused-imports #-}

module GHC.TypeLits.KnownNat.TH where

import GHC.TypeLits        (Symbol) -- haddock only
import Language.Haskell.TH (Name, TypeQ, litT, strTyLit)

-- | Convert a TH 'Name' to a type-level 'Symbol'
nameToSymbol :: Name -> TypeQ
nameToSymbol :: Name -> TypeQ
nameToSymbol = Q TyLit -> TypeQ
forall (m :: * -> *). Quote m => m TyLit -> m Type
litT (Q TyLit -> TypeQ) -> (Name -> Q TyLit) -> Name -> TypeQ
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Q TyLit
forall (m :: * -> *). Quote m => String -> m TyLit
strTyLit (String -> Q TyLit) -> (Name -> String) -> Name -> Q TyLit
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Name -> String
forall a. Show a => a -> String
show