{-# LANGUAGE FlexibleInstances, FunctionalDependencies #-}

module Language.Asm.Inline.AsmCode where

import Language.Haskell.TH.Syntax

class AsmCode tyAnn code | code -> tyAnn, tyAnn -> code where
  codeToString :: tyAnn -> code -> String
  toTypeQ :: tyAnn -> Q Type

instance AsmCode (Q Type) String where
  codeToString :: Q Type -> String -> String
codeToString Q Type
_ = String -> String
forall a. a -> a
id
  toTypeQ :: Q Type -> Q Type
toTypeQ = Q Type -> Q Type
forall a. a -> a
id