ref: 6b9035f7ecaffe62b847d038706371d524fb5144
dir: /ghc/MicroHs/Instances.hs/
{-# OPTIONS_GHC -Wno-orphans #-}
{-# LANGUAGE CPP #-}
module MicroHs.Instances(getMhsDir, compiledWithGHC) where
import Control.DeepSeq
import System.Environment
import MicroHs.CompileCache
import MicroHs.Ident
import MicroHs.Exp
import MicroHs.Expr
#if !defined(NOTCABAL)
import Paths_MicroHs
getMhsDir :: IO (Maybe FilePath)
getMhsDir = do
md <- lookupEnv "MHSDIR"
case md of
Just _ -> return md
Nothing -> Just <$> getDataDir
#else
getMhsDir :: IO (Maybe FilePath)
getMhsDir = lookupEnv "MHSDIR"
#endif
instance NFData Cache where rnf _ = ()
instance NFData Exp where rnf (Var i) = rnf i; rnf (App f a) = rnf f `seq` rnf a; rnf (Lam i e) = rnf i `seq` rnf e; rnf (Lit l) = rnf l
instance NFData Lit where rnf (LInt i) = rnf i; rnf (LInteger i) = rnf i; rnf (LDouble d) = rnf d; rnf (LRat r) = rnf r; rnf (LChar c) = rnf c; rnf (LStr s) = rnf s; rnf (LPrim s) = rnf s; rnf (LExn s) = rnf s; rnf (LForImp s _) = rnf s; rnf (LTick s) = rnf s; rnf (LUStr s) = rnf s
instance NFData Ident where rnf (Ident _ s) = rnf s
compiledWithGHC :: Bool
compiledWithGHC = True