shithub: MicroHs

Download patch

ref: 3b0babc4c3c060a75a29edb9d7356c0649722fbf
parent: 4ed265d0109cef75c9eee9b70ef626a5846ff2e1
author: Lennart Augustsson <lennart@augustsson.net>
date: Thu Aug 29 11:31:29 EDT 2024

Add actual Builtin files.

--- /dev/null
+++ b/lib/Mhs/Builtin.hs
@@ -1,0 +1,30 @@
+module Mhs.Builtin(
+  module Control.Monad,
+  module Data.Bool,
+  module Data.Enum,
+  module Data.Eq,
+  module Data.Fractional,
+  module Data.Function,
+  module Data.Ord,
+  module Data.Num,
+  module Data.Records,
+  module Data.Typeable,
+  module Data.Semigroup,
+  module Data.String,
+  module Text.Show,
+  ) where
+import Prelude()
+import Control.Monad(Monad(..))
+import Control.Monad.Fail(MonadFail(..))
+import Data.Bool((&&), Bool(..))
+import Data.Enum(Enum(enumFrom, enumFromThen, enumFromTo, enumFromThenTo))
+import Data.Eq(Eq(..))
+import Data.Fractional(Fractional(fromRational))
+import Data.Function((.))
+import Data.Ord(Ord(..), Ordering(..))
+import Data.Num(Num(fromInteger))
+import Data.Semigroup(Semigroup(..))
+import Data.String(IsString(..))
+import Data.Records(HasField(..), SetField(..))
+import {-# SOURCE #-} Data.Typeable(Typeable(..), mkTyConApp, mkTyCon)
+import Text.Show(Show(..), showString, showParen)
--- /dev/null
+++ b/src/MicroHs/Builtin.hs
@@ -1,0 +1,16 @@
+module MicroHs.Builtin(
+  builtinMdl,
+  mkBuiltin,
+  ) where
+import MicroHs.Ident
+
+-- The compiler needs a number of identifiers from libraries.
+-- These are make available by (programatically) adding
+--  'import Mhs.Builtin qualified as @B"
+-- The name 'B@' is not a valid identifier, so these name
+-- cannot be used accidentally in user code.
+builtinMdl :: String
+builtinMdl = "B@"
+
+mkBuiltin :: SLoc -> String -> Ident
+mkBuiltin loc name = mkIdentSLoc loc ((builtinMdl ++ ".") ++ name)
--