{-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Gpu.Vulkan.TypeEnum.Th where import Language.Haskell.TH mkInstance :: String -> Q Dec mkInstance :: String -> Q Dec mkInstance String ss = Q Cxt -> Q Type -> [Q Dec] -> Q Dec forall (m :: * -> *). Quote m => m Cxt -> m Type -> [m Dec] -> m Dec instanceD (Cxt -> Q Cxt forall a. a -> Q a forall (f :: * -> *) a. Applicative f => a -> f a pure []) (Name -> Q Type forall (m :: * -> *). Quote m => Name -> m Type conT (String -> Name mkName String "ShaderStageFlagBitsToValue") Q Type -> Q Type -> Q Type forall (m :: * -> *). Quote m => m Type -> m Type -> m Type `appT` Name -> Q Type forall (m :: * -> *). Quote m => Name -> m Type promotedT (String -> Name mkName String ss)) [ Q Pat -> Q Body -> [Q Dec] -> Q Dec forall (m :: * -> *). Quote m => m Pat -> m Body -> [m Dec] -> m Dec valD (Name -> Q Pat forall (m :: * -> *). Quote m => Name -> m Pat varP (Name -> Q Pat) -> Name -> Q Pat forall a b. (a -> b) -> a -> b $ String -> Name mkName String "shaderStageFlagBitsToValue") (Q Exp -> Q Body forall (m :: * -> *). Quote m => m Exp -> m Body normalB (Q Exp -> Q Body) -> (String -> Q Exp) -> String -> Q Body forall b c a. (b -> c) -> (a -> b) -> a -> c . Name -> Q Exp forall (m :: * -> *). Quote m => Name -> m Exp conE (Name -> Q Exp) -> (String -> Name) -> String -> Q Exp forall b c a. (b -> c) -> (a -> b) -> a -> c . String -> Name mkName (String -> Q Body) -> String -> Q Body forall a b. (a -> b) -> a -> b $ String "E." String -> String -> String forall a. [a] -> [a] -> [a] ++ String ss) [] ]