@@ -8,22 +8,26 @@ module Elm.Name
10 , toCompositeName
10 , toCompositeName
11 , int, float, bool, char, string
12 , int, float, bool, char, string
12− , maybe, list, array, tuple
13+ , maybe, list, array, tuple, jsArray
13 , task, router, cmd, sub, platform, browser
14 , task, router, cmd, sub, platform, browser
14 , shader, debug, bitwise, basics
15 , shader, debug, bitwise, basics
15 , utils, negate, value
16 , utils, negate, value
16− , node, program, main, dollar
17+ , node, program, main, dollar, identity
21import Prelude hiding (length, maybe, negate)
22import Prelude hiding (length, maybe, negate)
22import qualified Data.ByteString.Builder as B
23import qualified Data.ByteString.Builder as B
24+import qualified Data.ByteString.Internal as B
23import qualified Data.ByteString.Short as S
25import qualified Data.ByteString.Short as S
24import qualified Data.Set as Set
26import qualified Data.Set as Set
25import qualified Data.Text as Text
27import qualified Data.Text as Text
26import qualified Data.Text.Encoding as Text
28import qualified Data.Text.Encoding as Text
29+import Data.Word (Word8)
30+import Foreign.ForeignPtr (ForeignPtr)
@@ -64,6 +68,15 @@ toCompositeName names =
74+fromForeignPtr :: ForeignPtr Word8 -> Int -> Int -> Name
75+fromForeignPtr fptr offset len =
76+ Text.decodeUtf8 (B.PS fptr offset len)
67-- COMMON NAMES
80-- COMMON NAMES
@@ -112,6 +125,11 @@ tuple :: Name
112tuple = "Tuple"
125tuple = "Tuple"
128+{-# NOINLINE jsArray #-}
115{-# NOINLINE task #-}
133{-# NOINLINE task #-}
116task :: Name
134task :: Name
117task = "Task"
135task = "Task"
@@ -195,3 +213,8 @@ main = "main"
195{-# NOINLINE dollar #-}
213{-# NOINLINE dollar #-}
196dollar :: Name
214dollar :: Name
197dollar = "$"
215dollar = "$"
218+{-# NOINLINE identity #-}
220+identity = "identity"