move the (Arrow a)=>(GArrow a (,)) instance to a separate file
[ghc-base.git] / GHC / HetMet / CodeTypes.hs
index cf0dc12..82a6d01 100644 (file)
@@ -44,15 +44,23 @@ hetmet_flatten ::
 hetmet_flatten _ = Prelude.error "hetmet_flatten should never be evaluated; did you forget to compile with -fcoqpass?"
 -}
 
+
+-- FIXME: move these and the three above to "prim" or something like that.
+
+-- Technically these functions ought to be invoked *during
+-- compilation*; in the future I would like to use Template Haskell to
+-- do that.
 class GuestIntegerLiteral c where
   guestIntegerLiteral :: Integer -> <[ Integer ]>@c
-
 class GuestStringLiteral c where
   guestStringLiteral :: String -> <[ String ]>@c
-
 class GuestCharLiteral c where
   guestCharLiteral :: Char -> <[ Char ]>@c
 
+
+class GuestLanguageConstant c t where
+  guestLanguageConstant :: t -> <[ t ]>@c
+
 -- Note that stringwise-identical identifiers at different syntactic
 -- depths are different identifiers; for this reason the operators
 -- below can have a different type at syntactical depth 1 than at