├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── Setup.hs
├── app
├── Flags.hs
└── Main.hs
├── docs
├── CNAME
├── all.js
├── all.js.externs
├── index.html
├── lib.js
├── manifest.webapp
├── out.frefs.js
├── out.frefs.json
├── out.js
├── out.stats
├── rts.js
├── runmain.js
└── style.css
├── hie.yaml
├── json-to-haskell.cabal
├── package.yaml
├── src
├── JsonToHaskell.hs
└── JsonToHaskell
│ └── Internal
│ ├── Options.hs
│ ├── Parser.hs
│ └── Printer.hs
├── stack.yaml
├── stack.yaml.lock
└── test
└── Spec.hs
/.gitignore:
--------------------------------------------------------------------------------
1 | .stack-work/
2 | *~
3 | testdata
4 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog for json-to-haskell
2 |
3 | ## 0.1.1.2
4 | - Fix including changelog in package
5 |
6 | ## 0.1.1.1
7 | - Only look at first element of lists when determining type
8 |
9 | ## Unreleased changes
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright Author name here (c) 2020
2 |
3 | All rights reserved.
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | * Redistributions of source code must retain the above copyright
9 | notice, this list of conditions and the following disclaimer.
10 |
11 | * Redistributions in binary form must reproduce the above
12 | copyright notice, this list of conditions and the following
13 | disclaimer in the documentation and/or other materials provided
14 | with the distribution.
15 |
16 | * Neither the name of Author name here nor the names of other
17 | contributors may be used to endorse or promote products derived
18 | from this software without specific prior written permission.
19 |
20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # json-to-haskell
2 |
3 |
4 |
5 | * [Web interface](#web-interface)
6 | * [What is it?](#what-is-it)
7 | * [Installation](#installation)
8 | * [Usage](#usage)
9 | * [Help Wanted](#help-wanted)
10 |
11 |
12 |
13 | ## Web interface
14 |
15 | [Click here for the web interface](http://json-to-haskell.chrispenner.ca/)
16 | [Web interface source code (Miso)](https://github.com/ChrisPenner/json-to-haskell-web)
17 |
18 | ## What is it?
19 |
20 | In goes JSON, out comes Haskell!
21 |
22 | A handy tool for quickly spec'ing out types for a given JSON type.
23 |
24 | **Note: This tool isn't perfect, but it should get you _most_ of the way there.**
25 |
26 | ```sh
27 | $ cat > company.json
28 | { "company":
29 | { "employees":
30 | [ {"name": "Jon", "age": 32}
31 | , {"name": "Alice", "age": 27}
32 | ]
33 | , "star_rating": 4.7
34 | }
35 | }
36 | ```
37 |
38 | ```haskell
39 | $ cat company.json | json-to-haskell
40 | {-# LANGUAGE DuplicateRecordFields #-}
41 | {-# LANGUAGE RecordWildCards #-}
42 | {-# LANGUAGE OverloadedStrings #-}
43 | module Model where
44 |
45 | import Data.Aeson (ToJSON(..), FromJSON(..), Value(..), (.:), (.=), object)
46 | import Data.Aeson.Types (prependFailure, typeMismatch)
47 | import Data.Text (Text)
48 |
49 | data Company = Company
50 | { companyStarRating :: Double
51 | , companyEmployees :: [Employees]
52 | } deriving (Show, Eq, Ord)
53 |
54 | data Employees = Employees
55 | { employeesAge :: Int
56 | , employeesName :: Text
57 | } deriving (Show, Eq, Ord)
58 |
59 | data Model = Model
60 | { modelCompany :: Company
61 | } deriving (Show, Eq, Ord)
62 |
63 | instance ToJSON Company where
64 | toJSON Company{..} = object
65 | [ "star_rating" .= companyStarRating
66 | , "employees" .= companyEmployees
67 | ]
68 |
69 | instance ToJSON Employees where
70 | toJSON Employees{..} = object
71 | [ "age" .= employeesAge
72 | , "name" .= employeesName
73 | ]
74 |
75 | instance ToJSON Model where
76 | toJSON Model{..} = object
77 | [ "company" .= modelCompany
78 | ]
79 |
80 | instance FromJSON Company where
81 | parseJSON (Object v) = do
82 | companyStarRating <- v .: "star_rating"
83 | companyEmployees <- v .: "employees"
84 | pure $ Company{..}
85 | parseJSON invalid = do
86 | prependFailure "parsing Company failed, "
87 | (typeMismatch "Object" invalid)
88 |
89 | instance FromJSON Employees where
90 | parseJSON (Object v) = do
91 | employeesAge <- v .: "age"
92 | employeesName <- v .: "name"
93 | pure $ Employees{..}
94 | parseJSON invalid = do
95 | prependFailure "parsing Employees failed, "
96 | (typeMismatch "Object" invalid)
97 |
98 | instance FromJSON Model where
99 | parseJSON (Object v) = do
100 | modelCompany <- v .: "company"
101 | pure $ Model{..}
102 | parseJSON invalid = do
103 | prependFailure "parsing Model failed, "
104 | (typeMismatch "Object" invalid)
105 | ```
106 |
107 | ## Installation
108 |
109 | Take your pick:
110 |
111 | ```sh
112 | cabal install haskell-to-json
113 | # OR
114 | stack install haskell-to-json
115 | ```
116 |
117 | ## Usage
118 |
119 | There's a web interface [here](http://json-to-haskell.chrispenner.ca/) if you prefer.
120 |
121 |
122 | Otherwise, install the cli and ask for help; the cli will have the most up to date help message:
123 |
124 | ```sh
125 | $ json-to-haskell --help
126 | Usage: json-to-haskell [-t|--tab-stop ARG] [-n|--numbers ARG] [-s|--strings ARG]
127 | [-m|--maps ARG] [-l|--lists ARG] [--no-module-header]
128 | [--no-instances] [--no-prefix-record-fields] [--strict]
129 |
130 | Available options:
131 | -t,--tab-stop ARG Number of spaces to indent each level.
132 | -n,--numbers ARG Type to use for numbers.
133 |
134 | 'smart-floats':
135 | Use floats for numbers with decimals, Int for whole numbers.
136 | 'smart-doubles':
137 | Use floats for numbers with decimals, Int for whole numbers.
138 | 'floats':
139 | Use floats for all numbers.
140 | 'doubles':
141 | Use doubles for all numbers.
142 | 'scientific':
143 | Use scientific for all numbers.
144 |
145 | -s,--strings ARG Type to use for strings.
146 |
147 | 'string':
148 | Use String for strings.
149 | 'text':
150 | Use Text for strings.
151 | 'bytestring':
152 | Use ByteString for strings.
153 |
154 | -m,--maps ARG Type to use for maps.
155 |
156 | 'map':
157 | Use Data.Map for maps.
158 | 'hashmap':
159 | Use Data.HashMap for maps.
160 |
161 | -l,--lists ARG Type to use for lists.
162 |
163 | 'list':
164 | Use [] for lists.
165 | 'vector':
166 | Use Data.Vector for lists.
167 |
168 | --no-module-header Omit the module header containing language extensions, module definition and imports.
169 | --no-instances Omit the ToJSON and FromJSON instances.
170 | --no-prefix-record-fields
171 | Omit record field prefixes.
172 | --strict Use strict record fields.
173 | -h,--help Show this help text
174 | ```
175 |
176 | ## Help Wanted
177 |
178 | Want to help out?
179 |
180 | I'd love to have a Purescript version of the app! It should be pretty easy to port, you'd just need to adapt the "printer" for the parsed data type.
181 | Check out [Printer.hs](./src/JsonToHaskell/Internal/Printer.hs) .
182 |
183 | It'd also be really nice to port the whole project to Purescript, the current miso build is difficult to set up locally.
184 |
--------------------------------------------------------------------------------
/Setup.hs:
--------------------------------------------------------------------------------
1 | import Distribution.Simple
2 | main = defaultMain
3 |
--------------------------------------------------------------------------------
/app/Flags.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE ApplicativeDo #-}
2 | {-# LANGUAGE RecordWildCards #-}
3 | {-# LANGUAGE LambdaCase #-}
4 | {-# LANGUAGE QuasiQuotes #-}
5 | module Flags where
6 |
7 | import Options.Applicative
8 | import JsonToHaskell
9 | import Text.RawString.QQ (r)
10 | import Text.PrettyPrint.ANSI.Leijen
11 |
12 | optionsParserInfo :: ParserInfo Options
13 | optionsParserInfo = info (optionParser <**> helper) fullDesc
14 |
15 | parseNumberType :: ReadM NumberType
16 | parseNumberType = maybeReader $ \case
17 | "smart-floats" -> Just UseSmartFloats
18 | "smart-doubles" -> Just UseSmartDoubles
19 | "floats" -> Just UseFloats
20 | "doubles" -> Just UseDoubles
21 | _ -> Nothing
22 |
23 | parseTextType :: ReadM TextType
24 | parseTextType = maybeReader $ \case
25 | "string" -> Just UseString
26 | "text" -> Just UseText
27 | "bytestring" -> Just UseByteString
28 | _ -> Nothing
29 |
30 | parseMapType :: ReadM MapType
31 | parseMapType = maybeReader $ \case
32 | "map" -> Just UseMap
33 | "hashmap" -> Just UseHashMap
34 | _ -> Nothing
35 |
36 | parseListType :: ReadM ListType
37 | parseListType = maybeReader $ \case
38 | "list" -> Just UseList
39 | "vector" -> Just UseVector
40 | _ -> Nothing
41 |
42 | stringDoc :: String -> Mod f a
43 | stringDoc = helpDoc . Just . string
44 |
45 | optionParser :: Parser Options
46 | optionParser = do
47 | _tabStop <- option auto
48 | (short 't'
49 | <> long "tab-stop"
50 | <> stringDoc "Number of spaces to indent each level."
51 | <> value 2)
52 | _numberType <- option parseNumberType
53 | (short 'n'
54 | <> long "numbers"
55 | <> value UseSmartDoubles
56 | <> stringDoc [r|Type to use for numbers.
57 |
58 | 'smart-floats':
59 | Use floats for numbers with decimals, Int for whole numbers.
60 | 'smart-doubles':
61 | Use floats for numbers with decimals, Int for whole numbers.
62 | 'floats':
63 | Use floats for all numbers.
64 | 'doubles':
65 | Use doubles for all numbers.
66 | 'scientific':
67 | Use scientific for all numbers.
68 | |])
69 | _textType <- option parseTextType
70 | (short 's'
71 | <> long "strings"
72 | <> value UseText
73 | <> stringDoc [r|Type to use for strings.
74 |
75 | 'string':
76 | Use String for strings.
77 | 'text':
78 | Use Text for strings.
79 | 'bytestring':
80 | Use ByteString for strings.
81 | |])
82 | _mapType <- option parseMapType
83 | (short 'm'
84 | <> long "maps"
85 | <> value UseMap
86 | <> stringDoc [r|Type to use for maps.
87 |
88 | 'map':
89 | Use Data.Map for maps.
90 | 'hashmap':
91 | Use Data.HashMap for maps.
92 | |])
93 | _listType <- option parseListType
94 | (short 'l'
95 | <> long "lists"
96 | <> value UseList
97 | <> stringDoc [r|Type to use for lists.
98 |
99 | 'list':
100 | Use [] for lists.
101 | 'vector':
102 | Use Data.Vector for lists.
103 | |])
104 | _includeHeader <- flag True False
105 | (long "no-module-header"
106 | <> stringDoc [r|Omit the module header containing language extensions, module definition and imports.|])
107 | _includeInstances <- flag True False
108 | (long "no-instances"
109 | <> stringDoc [r|Omit the ToJSON and FromJSON instances.|])
110 | _prefixRecordFields <- flag True False
111 | (long "no-prefix-record-fields"
112 | <> stringDoc [r|Omit record field prefixes.|])
113 | _strictData <- flag False True
114 | (long "strict"
115 | <> stringDoc [r|Use strict record fields.|])
116 | pure $ Options {.. }
117 |
--------------------------------------------------------------------------------
/app/Main.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE OverloadedStrings #-}
2 | {-# LANGUAGE QuasiQuotes #-}
3 | {-# LANGUAGE TypeApplications #-}
4 | module Main where
5 |
6 | import JsonToHaskell
7 | import qualified Data.Text.IO as T
8 | import qualified Data.ByteString.Lazy as BL
9 | import Options.Applicative
10 | import System.Exit
11 | import Flags
12 | import Data.Aeson
13 |
14 | main :: IO ()
15 | main = do
16 | opts <- execParser optionsParserInfo
17 | input <- BL.getContents
18 | case eitherDecode input of
19 | Left err -> putStrLn err >> exitWith (ExitFailure 1)
20 | Right val -> T.putStrLn $ jsonToHaskell opts val
21 |
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | json-to-haskell.chrispenner.ca
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/manifest.webapp:
--------------------------------------------------------------------------------
1 | {
2 | "name": "GHCJS Web Application",
3 | "description": "GHCJS Web Application",
4 | "launch_path": "/index.html",
5 | "icons": {
6 | "16": "/icons/icon16x16.png",
7 | "48": "/icons/icon48x48.png",
8 | "60": "/icons/icon60x60.png",
9 | "128": "/icons/icon128x128.png"
10 | },
11 | "type": "privileged",
12 | "permissions": {}
13 | }
--------------------------------------------------------------------------------
/docs/out.frefs.json:
--------------------------------------------------------------------------------
1 | [{"span":"","pattern":"h$hs_intToInt64","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./System/Posix/Types.hs (178,51)-(178,54)","pattern":"h$base_poke_lflag($1_1,$1_2,$2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Types.hs (178,92)-(178,96)","pattern":"$r = h$base_echo;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Types.hs (178,51)-(178,54)","pattern":"h$base_poke_lflag($1_1,$1_2,$2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Types.hs (178,92)-(178,96)","pattern":"$r = h$base_echo;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (193,18)-(198,47)","pattern":"$r = h$base_lflag($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Types.hs (178,92)-(178,96)","pattern":"$r = h$base_icanon;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Types.hs (178,92)-(178,96)","pattern":"$r = h$base_icanon;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (220,25)-(220,81)","pattern":"$r = h$base_vtime;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (219,25)-(219,81)","pattern":"$r = h$base_vmin;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (217,25)-(222,25)","pattern":"$r1 = h$base_ptr_c_cc($1_1,$1_2); $r2 = h$ret_1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (212,21)-(212,27)","pattern":"h$base_poke_lflag($1_1,$1_2,$2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (208,18)-(222,25)","pattern":"$r = h$base_lflag($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (237,14)-(237,45)","pattern":"h$__hscore_set_saved_termios","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/Marshal/Utils.hs (159,1)-(160,40)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/Marshal/Alloc.hs (214,1)-(219,23)","pattern":"h$malloc","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/Marshal/Alloc.hs (214,1)-(219,23)","pattern":"$r = h$base_sizeof_termios;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (232,26)-(237,45)","pattern":"h$__hscore_get_saved_termios","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./System/Posix/Internals.hs (256,63)-(256,70)","pattern":"$r = h$base_sigprocmask($1,$2_1,$2_2,$3_1,$3_2);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (298,1)-(301,52)","pattern":"$r = h$base_sig_setmask;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (254,47)-(254,53)","pattern":"$r = h$base_tcsetattr($1,$2,$3_1,$3_2);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (354,1)-(354,69)","pattern":"$r = h$base_tcsanow;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (251,57)-(251,69)","pattern":"$r = h$base_sigprocmask($1,$2_1,$2_2,$3_1,$3_2);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (298,1)-(301,52)","pattern":"$r = h$base_sig_block;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (298,1)-(301,52)","pattern":"$r = h$base_sigaddset($1_1,$1_2,$2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (298,1)-(301,52)","pattern":"$r = h$base_sigttou;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (298,1)-(301,52)","pattern":"$r = h$base_sigemptyset($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (354,1)-(354,69)","pattern":"$r = h$base_tcgetattr($1,$2_1,$2_2);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Types.hs (178,92)-(178,96)","pattern":"$r = h$base_echo;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (202,18)-(204,54)","pattern":"$r = h$base_lflag($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (115,12)-(115,25)","pattern":"$r1 = h$base_st_ino($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (114,12)-(114,25)","pattern":"$r = h$base_st_dev($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (479,1)-(479,31)","pattern":"$r = h$base_c_s_isblk($1);","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (115,12)-(115,25)","pattern":"$r1 = h$base_st_ino($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (114,12)-(114,25)","pattern":"$r = h$base_st_dev($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (475,1)-(475,31)","pattern":"$r = h$base_c_s_isreg($1);","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (115,12)-(115,25)","pattern":"$r1 = h$base_st_ino($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (114,12)-(114,25)","pattern":"$r = h$base_st_dev($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (477,1)-(477,31)","pattern":"$r = h$base_c_s_ischr($1);","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (115,12)-(115,25)","pattern":"$r1 = h$base_st_ino($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (114,12)-(114,25)","pattern":"$r = h$base_st_dev($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (510,1)-(510,39)","pattern":"h$base_c_s_issock($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (115,12)-(115,25)","pattern":"$r1 = h$base_st_ino($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (114,12)-(114,25)","pattern":"$r = h$base_st_dev($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (483,1)-(483,33)","pattern":"$r = h$base_c_s_isfifo($1);","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (115,12)-(115,25)","pattern":"$r1 = h$base_st_ino($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (114,12)-(114,25)","pattern":"$r = h$base_st_dev($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (481,1)-(481,31)","pattern":"$r = h$base_c_s_isdir($1);","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (122,1)-(131,63)","pattern":"$r = h$base_st_mode($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (354,1)-(354,69)","pattern":"h$base_fstat($1,$2_1,$2_2,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (94,14)-(96,35)","pattern":"$r1 = h$base_st_size($1_1,$1_2); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (475,1)-(475,31)","pattern":"$r = h$base_c_s_isreg($1);","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./System/Posix/Internals.hs (91,15)-(91,41)","pattern":"$r = h$base_st_mode($1_1,$1_2);","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (354,1)-(354,69)","pattern":"h$base_fstat($1,$2_1,$2_2,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"","pattern":"$r = h$base_sizeof_stat;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"$r = h$base_sizeof_termios;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"$r = h$base_sizeof_sigset_t;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Unicode.hs (206,17)-(206,38)","pattern":"h$u_iswspace","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (368,1)-(368,35)","pattern":"h$u_towlower","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (365,1)-(365,37)","pattern":"h$u_iswupper","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/TopHandler.hs (182,28)-(184,20)","pattern":"h$reportHeapOverflow","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/TopHandler.hs (176,29)-(178,18)","pattern":"h$reportStackOverflow","arguments":["ghc-prim:GHC.Prim.ThreadId#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/TopHandler.hs (209,27)-(210,35)","pattern":"h$errorBelch2","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/TopHandler.hs (250,1)-(251,66)","pattern":"h$shutdownHaskellAndExit","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"ccall"},{"span":"./GHC/TopHandler.hs (250,1)-(251,66)","pattern":"h$shutdownHaskellAndExit","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"ccall"},{"span":"./GHC/TopHandler.hs (86,7)-(86,51)","pattern":"h$rts_setMainThread","arguments":["ghc-prim:GHC.Prim.Weak#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Int.hs (688,29)-(688,53)","pattern":"h$hs_eqInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_write($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_write($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (400,27)-(400,28)","pattern":"h$fdReady","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"ccall"},{"span":"./GHC/IO/FD.hs (396,29)-(396,49)","pattern":"h$hs_intToInt64","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./System/Posix/Types.hs (218,39)-(218,42)","pattern":"h$base_close($1,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$unlockFile","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"$r = h$base_isatty($1);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (352,36)-(352,44)","pattern":"$r = h$base_SEEK_END","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (351,36)-(351,44)","pattern":"$r = h$base_SEEK_CUR;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (350,36)-(350,44)","pattern":"$r = h$base_SEEK_SET;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (349,16)-(352,44)","pattern":"h$base_lseek($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (383,52)-(383,54)","pattern":"h$hs_negateInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_lseek($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"$r = h$base_SEEK_CUR;","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_ftruncate($1,$2_1,$2_2,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_dup($1,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_dup2($1,$2,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_read($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_read($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_read($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_write($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/IO/FD.hs (74,3)-(74,7)","pattern":"h$base_write($1,$2_1,$2_2,$3,$c);","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/Word.hs (673,1)-(673,55)","pattern":"h$hs_eqWord64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Word.hs (673,1)-(673,55)","pattern":"h$hs_eqWord64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Fingerprint.hs (56,26)-(56,31)","pattern":"h$__hsbase_MD5Final","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Fingerprint.hs (54,5)-(54,45)","pattern":"h$__hsbase_MD5Update","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Fingerprint.hs (52,20)-(57,48)","pattern":"h$__hsbase_MD5Init","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Conc/Sync.hs (897,29)-(897,33)","pattern":"h$errorBelch2","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Conc/Sync.hs (870,6)-(870,31)","pattern":"h$reportStackOverflow","arguments":["ghc-prim:GHC.Prim.ThreadId#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Word.hs (788,1)-(789,67)","pattern":"h$hs_uncheckedShiftRL64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/Storable.hs (276,37)-(276,53)","pattern":"h$hs_word64ToWord","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Word.hs (755,34)-(755,55)","pattern":"h$hs_or64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Storable.hs (96,74)-(96,79)","pattern":"h$hs_wordToWord64","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Word.hs (785,1)-(786,66)","pattern":"h$hs_uncheckedShiftL64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (263,1)-(263,47)","pattern":"h$__hscore_get_errno","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Foreign/C/Error.hs (468,65)-(470,70)","pattern":"h$strerror","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Typeable/Internal.hs (836,24)-(836,60)","pattern":"h$hs_eqWord64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Typeable/Internal.hs (836,24)-(836,60)","pattern":"h$hs_eqWord64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHCJS/Prim/Internal.hs (40,33)-(40,63)","pattern":"h$setCurrentThreadResultValue($1);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHCJS/Prim/Internal.hs (33,7)-(33,42)","pattern":"h$setCurrentThreadResultWouldBlock();","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHCJS/Prim/Internal.hs (35,7)-(35,45)","pattern":"h$setCurrentThreadResultJSException($1);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHCJS/Prim.hs (237,26)-(237,28)","pattern":"h$setCurrentThreadResultHaskellException($1);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHCJS/Prim.hs (237,26)-(237,28)","pattern":"h$fromHsString($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$decodeUtf8z($1_1, $1_2)","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1097,1)-(1097,57)","pattern":"h$ghcjsbn_add_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1158,31)-(1158,61)","pattern":"h$ghcjsbn_sub_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1120,33)-(1120,62)","pattern":"h$ghcjsbn_add_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1136,1)-(1136,59)","pattern":"h$ghcjsbn_sub_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1136,1)-(1136,59)","pattern":"h$ghcjsbn_sub_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1097,1)-(1097,57)","pattern":"h$ghcjsbn_add_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1120,33)-(1120,62)","pattern":"h$ghcjsbn_add_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1158,31)-(1158,61)","pattern":"h$ghcjsbn_sub_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1067,1)-(1067,43)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1067,1)-(1067,43)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1176,22)-(1176,92)","pattern":"h$ghcjsbn_mul_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1176,22)-(1176,92)","pattern":"h$ghcjsbn_mul_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1208,1)-(1208,61)","pattern":"h$ghcjsbn_mul_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1208,1)-(1208,61)","pattern":"h$ghcjsbn_mul_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1176,22)-(1176,92)","pattern":"h$ghcjsbn_mul_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1176,22)-(1176,92)","pattern":"h$ghcjsbn_mul_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1208,1)-(1208,61)","pattern":"h$ghcjsbn_mul_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1208,1)-(1208,61)","pattern":"h$ghcjsbn_mul_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1622,22)-(1622,46)","pattern":"h$ghcjsbn_gcd_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1622,22)-(1622,46)","pattern":"h$ghcjsbn_gcd_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1611,1)-(1611,53)","pattern":"h$ghcjsbn_gcd_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (2531,1)-(2534,46)","pattern":"h$ghcjsbn_gcd_ww($1,$2)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (559,31)-(559,71)","pattern":"h$ghcjsbn_toNegInteger_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (547,28)-(547,65)","pattern":"h$ghcjsbn_toInteger_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (559,31)-(559,71)","pattern":"h$ghcjsbn_toNegInteger_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (547,28)-(547,65)","pattern":"h$ghcjsbn_toInteger_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1084,1)-(1084,55)","pattern":"h$ghcjsbn_mkBigNat_ww($1,$2)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1067,1)-(1067,43)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1546,26)-(1546,55)","pattern":"h$ghcjsbn_quot_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"h$ghcjsbn_eq_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1048,1)-(1048,36)","pattern":"$r = h$ghcjsbn_null_b;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (989,1)-(989,36)","pattern":"$r = h$ghcjsbn_zero_b;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (542,45)-(542,46)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1084,1)-(1084,55)","pattern":"h$ghcjsbn_mkBigNat_ww($1,$2)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1084,1)-(1084,55)","pattern":"h$ghcjsbn_mkBigNat_ww($1,$2)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1084,1)-(1084,55)","pattern":"h$ghcjsbn_mkBigNat_ww($1,$2)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (527,45)-(527,46)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1084,1)-(1084,55)","pattern":"h$ghcjsbn_mkBigNat_ww($1,$2)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1067,1)-(1067,43)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$integer_int64ToInteger($1_1,$1_2)","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$ghcjsbn_toInteger_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$ghcjsbn_toNegInteger_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$ghcjsbn_toWord_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$ghcjsbn_toInt_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1067,1)-(1067,43)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1954,37)-(1954,66)","pattern":"h$ghcjsbn_toDouble_b($1,$2)","arguments":["ghc-prim:GHC.Types.Bool","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1953,37)-(1953,66)","pattern":"h$ghcjsbn_toDouble_b($1,$2)","arguments":["ghc-prim:GHC.Types.Bool","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1519,12)-(1519,79)","pattern":"$r1 = []; $r2 = []; h$ghcjsbn_quotRem_bb($r1,$r2,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"h$ghcjsbn_eq_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1519,12)-(1519,79)","pattern":"$r1 = []; $r2 = []; h$ghcjsbn_quotRem_bb($r1,$r2,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"h$ghcjsbn_eq_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1519,12)-(1519,79)","pattern":"$r1 = []; $r2 = []; h$ghcjsbn_quotRem_bb($r1,$r2,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"h$ghcjsbn_eq_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1519,12)-(1519,79)","pattern":"$r1 = []; $r2 = []; h$ghcjsbn_quotRem_bb($r1,$r2,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (952,1)-(952,51)","pattern":"h$ghcjsbn_eq_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1002,1)-(1002,43)","pattern":"h$ghcjsbn_isZero_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (734,65)-(734,67)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (736,68)-(736,70)","pattern":"h$ghcjsbn_mkBigNat_w($1)","arguments":["ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (904,1)-(906,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (904,1)-(906,43)","pattern":"h$ghcjsbn_gt_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (1581,3)-(1581,70)","pattern":"$r1 = []; $r2 = h$ghcjsbn_quotRem_bw($r1,$1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (904,1)-(906,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (904,1)-(906,43)","pattern":"h$ghcjsbn_gt_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (873,1)-(876,11)","pattern":"h$ghcjsbn_cmp_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (923,1)-(925,44)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (923,1)-(925,44)","pattern":"h$ghcjsbn_eq_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (923,1)-(925,44)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (923,1)-(925,44)","pattern":"h$ghcjsbn_eq_bb($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (960,1)-(962,43)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (960,1)-(962,43)","pattern":"h$ghcjsbn_eq_bw($1,$2)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (261,1)-(261,47)","pattern":"h$hs_negateInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"src/GHC/Integer/Type.hs (261,1)-(261,47)","pattern":"h$hs_word64ToInt64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"src/GHC/Integer/Type.hs (261,1)-(261,47)","pattern":"$r1 = h$ghcjsbn_toWord64_b($1); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (261,1)-(261,47)","pattern":"h$hs_word64ToInt64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"src/GHC/Integer/Type.hs (261,1)-(261,47)","pattern":"$r1 = h$ghcjsbn_toWord64_b($1); $r2 = h$ret1;","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (980,1)-(980,43)","pattern":"h$ghcjsbn_toInt_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"src/GHC/Integer/Type.hs (980,1)-(980,43)","pattern":"h$ghcjsbn_toInt_b($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"$r = true;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1045,1)-(1045,19)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1045,1)-(1045,19)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Unsafe/Coerce.hs (39,1)-(39,15)","pattern":"h$jsstringPack($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Unsafe/Coerce.hs (39,1)-(39,15)","pattern":"h$jsstringPack($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Either.hs (178,1)-(179,31)","pattern":"h$textFromString","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/TopHandler.hs (86,7)-(86,51)","pattern":"h$rts_setMainThread","arguments":["ghc-prim:GHC.Prim.Weak#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,12)-(1322,13)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"diff($1, $2, $3, $4);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1388,1)-(1388,16)","pattern":"$r = null;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = document;","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = document.body;","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Classes.hs (519,1)-(520,33)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Classes.hs (519,1)-(520,33)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Classes.hs (519,1)-(520,33)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Classes.hs (519,1)-(520,33)","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Encoding.hs (145,21)-(145,46)","pattern":"h$_hs_text_decode_utf8","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Search.hs (65,34)-(65,60)","pattern":"h$hs_or64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Unsafe/Shift.hs (53,5)-(53,65)","pattern":"h$hs_or64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Unsafe/Shift.hs (53,5)-(53,65)","pattern":"h$hs_uncheckedShiftL64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Search.hs (83,78)-(83,79)","pattern":"h$hs_eqWord64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Unsafe/Shift.hs (53,32)-(53,65)","pattern":"h$hs_and64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Unsafe/Shift.hs (53,32)-(53,65)","pattern":"h$hs_uncheckedShiftL64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Search.hs (65,51)-(65,52)","pattern":"h$hs_uncheckedShiftL64","arguments":["ghc-prim:GHC.Prim.Word64#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (759,47)-(759,49)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (760,43)-(760,45)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (762,62)-(762,65)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal.hs (165,48)-(165,63)","pattern":"h$hs_int64ToInt","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal.hs (167,18)-(167,28)","pattern":"h$hs_gtInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (752,44)-(752,56)","pattern":"h$hs_ltInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (752,44)-(752,56)","pattern":"h$hs_timesInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (752,44)-(752,56)","pattern":"h$hs_intToInt64","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (752,20)-(752,37)","pattern":"h$hs_intToInt64","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal.hs (166,17)-(166,37)","pattern":"h$hs_negateInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (487,36)-(487,39)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (985,49)-(985,50)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (985,49)-(985,50)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"$r = true;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"$r = false;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"$r = true;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"$r = false;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1298,22)-(1298,23)","pattern":"h$jsstringIndex","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"h$fromHsListJSVal($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1298,19)-(1298,24)","pattern":"registerCallback($1);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,37)-(1385,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./Unsafe/Coerce.hs (39,1)-(39,15)","pattern":"h$makeCallbackApply($1, h$run, [], $2)","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$r = objectToJSON($1,$2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$r = null;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./Unsafe/Coerce.hs (39,1)-(39,15)","pattern":"h$fromHsListJSVal($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,37)-(1385,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (705,1)-(705,26)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (705,1)-(705,26)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (705,1)-(705,26)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = true;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = false;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = true;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = false;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/TypeLits.hs (78,1)-(79,31)","pattern":"h$fromHsString($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,37)-(1385,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/TypeLits.hs (78,1)-(79,31)","pattern":"h$fromHsString($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,67)-(1385,72)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,37)-(1385,38)","pattern":"$3[$1] = $2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"safe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = {};","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Map/Internal.hs (776,9)-(784,55)","pattern":"h$jsstringCompare","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Map/Internal.hs (3348,41)-(3348,43)","pattern":"h$jsstringCompare","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Map/Internal.hs (3348,41)-(3348,43)","pattern":"h$jsstringCompare","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Map/Internal.hs (3348,41)-(3348,43)","pattern":"h$jsstringCompare","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Map/Internal.hs (3348,41)-(3348,43)","pattern":"h$jsstringCompare","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1322,1)-(1322,13)","pattern":"h$textToString($1,$2,$3)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"diff($1, $2, $3, $4);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"diff($1, $2, $3, $4);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1388,1)-(1388,16)","pattern":"$r = null;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"diff($1, $2, $3, $4);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1388,1)-(1388,16)","pattern":"$r = null;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = document;","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$r = document.getElementById($1);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = document.body;","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"delegate($1, $2, $3);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./Unsafe/Coerce.hs (39,1)-(39,15)","pattern":"h$makeCallbackApply($2, h$runSync, [$1], $3)","arguments":["ghc-prim:GHC.Types.Bool","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"$1($2);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = document.getElementById($1);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"$r = document.body;","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,1)-(1385,73)","pattern":"releaseCallbacks();","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1385,1)-(1385,73)","pattern":"swapCallbacks();","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (154,1)-(156,53)","pattern":"h$u_iswalpha","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (1100,57)-(1100,58)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal.hs (165,48)-(165,63)","pattern":"h$hs_int64ToInt","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal.hs (167,18)-(167,28)","pattern":"h$hs_gtInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (1094,19)-(1094,20)","pattern":"h$hs_ltInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (1094,19)-(1094,20)","pattern":"h$hs_timesInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (1094,19)-(1094,20)","pattern":"h$hs_intToInt64","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text.hs (1094,11)-(1094,12)","pattern":"h$hs_intToInt64","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal.hs (166,17)-(166,37)","pattern":"h$hs_negateInt64","arguments":["ghc-prim:GHC.Prim.Int64#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (122,33)-(122,36)","pattern":"h$_hs_text_memcpy","arguments":["ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.MutableByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (154,1)-(156,53)","pattern":"h$u_iswalpha","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (154,1)-(156,53)","pattern":"h$u_iswspace","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Unsafe/Char.hs (44,1)-(44,47)","pattern":"h$u_iswspace","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Unsafe/Char.hs (44,1)-(44,47)","pattern":"h$u_iswspace","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Internal/Encoding/Utf16.hs (33,13)-(33,25)","pattern":"h$u_iswspace","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"src/GHC/Integer/Logarithms.hs (72,1)-(72,50)","pattern":"h$ghcjsbn_integerLog2($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,68)-(1382,69)","pattern":"$1.handle = window.requestAnimationFrame($c);","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"interruptible","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,68)-(1382,69)","pattern":"h$animationFrameCancel","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.Unit#","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,1)-(1382,77)","pattern":"{ handle: null, callback: null }","arguments":["ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Traversable.hs (240,41)-(240,42)","pattern":"h$textFromString","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,37)-(1382,38)","pattern":"$2[$1]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"safe","cconv":"javascript"},{"span":"./Unsafe/Coerce.hs (39,1)-(39,15)","pattern":"h$listProps","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHCJS/Prim.hs (102,1)-(102,44)","pattern":"h$toHsListJSVal($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"h$textFromString","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$1 ? true : false","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = +$1;","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,31)-(1379,32)","pattern":"$r = $1|0;","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$jsonTypeOf($1)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"h$fromHsListJSVal($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"h$fromHsListJSVal($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"h$fromHsListJSVal($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1382,71)-(1382,76)","pattern":"h$fromHsListJSVal($1)","arguments":["ghc-prim:GHC.Types.Any","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1379,28)-(1379,29)","pattern":"[$1,$2]","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"h$hashable_fnv_hash_offset","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"","pattern":"$r = false;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"$r = true;","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$textToString($1,$2,$3)","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"$r = '';","arguments":["ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"$r = !(!$1)","arguments":["ghc-prim:GHC.Prim.Int#"],"result":"ghc-prim:GHC.Types.Bool","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"$1===$2","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Base.hs (1298,22)-(1298,23)","pattern":"h$jsstringIndex","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"","pattern":"h$jsstringCompare","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"javascript"},{"span":"./GHC/Unicode.hs (365,1)-(365,37)","pattern":"h$u_iswupper","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (369,1)-(369,35)","pattern":"h$u_towupper","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (365,1)-(365,37)","pattern":"h$u_iswupper","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (626,1)-(626,58)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (459,22)-(459,45)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (626,1)-(626,58)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (620,1)-(620,45)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (626,1)-(626,58)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"h$memcpy","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (362,1)-(362,37)","pattern":"h$u_iswalnum","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Unicode.hs (361,1)-(361,37)","pattern":"h$u_iswalpha","arguments":["ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"h$hashable_fnv_hash_offset","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Num.hs (94,5)-(94,30)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (247,16)-(247,21)","pattern":"h$strlen","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Num.hs (94,5)-(94,30)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (247,16)-(247,21)","pattern":"h$strlen","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Num.hs (94,5)-(94,30)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (247,16)-(247,21)","pattern":"h$strlen","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Num.hs (94,5)-(94,30)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (247,16)-(247,21)","pattern":"h$strlen","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Num.hs (94,5)-(94,30)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (247,16)-(247,21)","pattern":"h$strlen","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Num.hs (94,5)-(94,30)","pattern":"h$memcmp","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/ByteString/Internal.hs (247,16)-(247,21)","pattern":"h$strlen","arguments":["ghc-prim:GHC.Prim.Addr#","ghc-prim:GHC.Prim.Void#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./GHC/Base.hs (1253,1)-(1253,29)","pattern":"h$hashable_fnv_hash_offset","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.Int#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"},{"span":"./Data/Text/Array.hs (85,7)-(85,10)","pattern":"h$_hs_text_memcmp","arguments":["ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.ByteArray#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.Word#","ghc-prim:GHC.Prim.State#"],"result":"ghc-prim:GHC.Prim.(#,#)","safety":"unsafe","cconv":"ccall"}]
--------------------------------------------------------------------------------
/docs/out.stats:
--------------------------------------------------------------------------------
1 | code size summary per package:
2 |
3 | aeson-1.4.2.0-KI9D1oB1yKLLLHHPSQ9U4P:59953
4 | aeson-extra-0.4.1.1-6oD0Ntz8EEXKuXyNG1Bh15:5131
5 | attoparsec-0.13.2.2-GXDpxZMHNt6DerDaoJhZlK:37055
6 | base: 350611
7 | bimap-0.3.3-56XO0CrU8v9F3kNCpYtXeW:1429
8 | bytestring-0.10.8.2-FBklFuapa1a7kq4yflY7Bt:24406
9 | casing-0.1.4.0-6neY1RN3Kg74kGTlBz0Cvf:55113
10 | containers-0.6.0.1-BAqcfV1UBBeCIRjPbUYeSG:65209
11 | ghc-prim: 35915
12 | ghcjs-base-0.2.0.0-EjoE99fiFSxxkwn8hxotx:27696
13 | ghcjs-prim-0.1.1.0-EXzjGVHQlAS2XAXcu0iCbS:3496
14 | integer-gmp: 2109
15 | integer-logarithms-1.0.3-8EbIvyaPt1VK2rKaCK88I2:26095
16 | json-to-haskell-0.1.1.1-4jUCHG4Ih9sKXPYRWr1JyK:751642
17 | main: 46912
18 | miso-0.21.2.0-2b5PVYCvLL0DtqAgGXpMDL:45678
19 | nonempty-containers-0.1.1.0-8BkGFUXFJceDfD0fKXa3NC:1
20 | primitive-0.6.4.0-Ix68lo67v0n3y1QMYDPFlz:3437
21 | scientific-0.3.6.2-9q8JP2eLKMJ7fUGkyRpkGr:20260
22 | split-0.2.3.3-LGnyxBzrKWwJCmCgeKG5L:26251
23 | text-1.2.3.1-2mMWCa8HNEL4R4p8nnvwO2:40112
24 | unordered-containers-0.2.9.0-ENnNUDBCeYM3LeK1fMybtG:25157
25 | vector-0.12.0.3-Ljxp3Ug7QBk3GWhyQE0Ewc:59448
26 |
27 |
28 | code size per module:
29 |
30 | aeson-1.4.2.0-KI9D1oB1yKLLLHHPSQ9U4P
31 | Data.Aeson.Parser.Internal: 38967
32 | Data.Aeson.Parser.UnescapePure: 7983
33 | Data.Aeson.Types.FromJSON: 5171
34 | Data.Aeson.Types.Internal: 7832
35 |
36 | aeson-extra-0.4.1.1-6oD0Ntz8EEXKuXyNG1Bh15
37 | Data.Aeson.Extra.Recursive: 5131
38 |
39 | attoparsec-0.13.2.2-GXDpxZMHNt6DerDaoJhZlK
40 | Data.Attoparsec.ByteString.Buffer: 7172
41 | Data.Attoparsec.ByteString.Char8: 23904
42 | Data.Attoparsec.ByteString.Internal:2058
43 | Data.Attoparsec.ByteString.Lazy: 383
44 | Data.Attoparsec.Internal: 1
45 | Data.Attoparsec.Internal.Types: 3537
46 |
47 | base
48 | Control.Exception.Base: 1
49 | Data.Either: 7111
50 | Data.OldList: 5300
51 | Data.Semigroup.Internal: 43720
52 | Data.Typeable.Internal: 9914
53 | Foreign.C.Error: 874
54 | Foreign.Marshal.Alloc: 2644
55 | Foreign.Storable: 2478
56 | GHC.Arr: 3317
57 | GHC.Base: 308
58 | GHC.Char: 5757
59 | GHC.Conc.Sync: 12814
60 | GHC.Enum: 132
61 | GHC.Err: 6404
62 | GHC.Exception: 2326
63 | GHC.Exception.Type: 5038
64 | GHC.Fingerprint: 319
65 | GHC.Fingerprint.Type: 23801
66 | GHC.Float: 10951
67 | GHC.Foreign: 325
68 | GHC.ForeignPtr: 1221
69 | GHC.IO: 441
70 | GHC.IO.Buffer: 1
71 | GHC.IO.BufferedIO: 434
72 | GHC.IO.Device: 398
73 | GHC.IO.Encoding: 592
74 | GHC.IO.Encoding.Failure: 1
75 | GHC.IO.Encoding.Types: 58104
76 | GHC.IO.Encoding.UTF8: 10879
77 | GHC.IO.Exception: 25520
78 | GHC.IO.FD: 274
79 | GHC.IO.Handle: 4794
80 | GHC.IO.Handle.FD: 23525
81 | GHC.IO.Handle.Internals: 1906
82 | GHC.IO.Handle.Types: 373
83 | GHC.Int: 7517
84 | GHC.List: 1
85 | GHC.MVar: 113
86 | GHC.Maybe: 995
87 | GHC.Num: 113
88 | GHC.Ptr: 10133
89 | GHC.Real: 1
90 | GHC.STRef: 12816
91 | GHC.Show: 4000
92 | GHC.Stack.CCS: 488
93 | GHC.Stack.Types: 9976
94 | GHC.TopHandler: 1354
95 | GHC.Unicode: 10357
96 | GHC.Word: 3688
97 | Numeric: 13450
98 | System.Posix.Internals: 3612
99 |
100 | bimap-0.3.3-56XO0CrU8v9F3kNCpYtXeW
101 | Data.Bimap: 1429
102 |
103 | bytestring-0.10.8.2-FBklFuapa1a7kq4yflY7Bt
104 | Data.ByteString: 2424
105 | Data.ByteString.Builder.Internal: 11353
106 | Data.ByteString.Internal: 883
107 | Data.ByteString.Lazy.Internal: 9746
108 |
109 | casing-0.1.4.0-6neY1RN3Kg74kGTlBz0Cvf
110 | Text.Casing: 55113
111 |
112 | containers-0.6.0.1-BAqcfV1UBBeCIRjPbUYeSG
113 | Data.Map.Internal: 20915
114 | Data.Sequence.Internal: 42233
115 | Data.Set.Internal: 2061
116 |
117 | ghc-prim
118 | GHC.CString: 3783
119 | GHC.Classes: 139
120 | GHC.IntWord64: 1747
121 | GHC.Tuple: 125
122 | GHC.Types: 30121
123 |
124 | ghcjs-base-0.2.0.0-EjoE99fiFSxxkwn8hxotx
125 | Data.JSString: 110
126 | Data.JSString.Internal.Type: 143
127 | Data.JSString.Text: 382
128 | GHCJS.Foreign.Internal: 23178
129 | GHCJS.Marshal: 1
130 | GHCJS.Marshal.Internal: 291
131 | GHCJS.Marshal.Pure: 1
132 | JavaScript.Array.Internal: 890
133 | JavaScript.Web.AnimationFrame: 2700
134 |
135 | ghcjs-prim-0.1.1.0-EXzjGVHQlAS2XAXcu0iCbS
136 | GHCJS.Prim: 2018
137 | GHCJS.Prim.Internal: 1478
138 |
139 | integer-gmp
140 | GHC.Integer.Type: 2109
141 |
142 | integer-logarithms-1.0.3-8EbIvyaPt1VK2rKaCK88I2
143 | Math.NumberTheory.Logarithms: 26095
144 |
145 | json-to-haskell-0.1.1.1-4jUCHG4Ih9sKXPYRWr1JyK
146 | JsonToHaskell: 4257
147 | JsonToHaskell.Internal.Options: 71800
148 | JsonToHaskell.Internal.Parser: 637288
149 | JsonToHaskell.Internal.Printer: 38297
150 |
151 | main
152 | Main: 46912
153 |
154 | miso-0.21.2.0-2b5PVYCvLL0DtqAgGXpMDL
155 | Miso: 1402
156 | Miso.Delegate: 1997
157 | Miso.Diff: 1
158 | Miso.Effect: 3908
159 | Miso.Event.Decoder: 12349
160 | Miso.Event.Types: 1210
161 | Miso.Html.Element: 153
162 | Miso.Html.Event: 16849
163 | Miso.Html.Internal: 7137
164 | Miso.Html.Property: 268
165 | Miso.String: 404
166 |
167 | nonempty-containers-0.1.1.0-8BkGFUXFJceDfD0fKXa3NC
168 | Data.Set.NonEmpty.Internal: 1
169 |
170 | primitive-0.6.4.0-Ix68lo67v0n3y1QMYDPFlz
171 | Data.Primitive.Array: 3437
172 |
173 | scientific-0.3.6.2-9q8JP2eLKMJ7fUGkyRpkGr
174 | Data.Scientific: 20260
175 |
176 | split-0.2.3.3-LGnyxBzrKWwJCmCgeKG5L
177 | Data.List.Split.Internals: 26251
178 |
179 | text-1.2.3.1-2mMWCa8HNEL4R4p8nnvwO2
180 | Data.Text: 566
181 | Data.Text.Array: 11061
182 | Data.Text.Encoding: 2988
183 | Data.Text.Encoding.Error: 503
184 | Data.Text.Internal: 1
185 | Data.Text.Internal.Fusion.Common: 408
186 | Data.Text.Internal.Fusion.Size: 531
187 | Data.Text.Internal.Fusion.Types: 263
188 | Data.Text.Internal.Lazy: 12955
189 | Data.Text.Lazy.Encoding: 8129
190 | Data.Text.Show: 96
191 | Data.Text.Unsafe: 2611
192 |
193 | unordered-containers-0.2.9.0-ENnNUDBCeYM3LeK1fMybtG
194 | Data.HashMap.Array: 16121
195 | Data.HashMap.Base: 8804
196 | Data.HashMap.List: 232
197 |
198 | vector-0.12.0.3-Ljxp3Ug7QBk3GWhyQE0Ewc
199 | Data.Vector: 498
200 | Data.Vector.Mutable: 58950
201 |
202 |
203 |
204 | packed metadata: 507908
205 |
206 |
--------------------------------------------------------------------------------
/docs/runmain.js:
--------------------------------------------------------------------------------
1 | h$main(h$mainZCZCMainzimain);
2 |
3 |
--------------------------------------------------------------------------------
/docs/style.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding: 0.5em 1em;
3 | font-family: 'Helvetica Neue', Helvetica, Arial, sans;
4 | }
5 |
6 | .container {
7 | display: flex;
8 | flex-flow: row;
9 | min-height: 70vh;
10 | }
11 |
12 | .input,
13 | .output {
14 | flex: 1;
15 | margin: 0.5em;
16 | }
17 |
18 | .input textarea,
19 | .output textarea {
20 | width: 100%;
21 | height: 100%;
22 | }
23 |
24 | h1,
25 | h2 {
26 | text-align: center;
27 | }
28 |
29 | .settings {
30 | margin: auto;
31 | display: flex;
32 | flex-flow: column;
33 | align-items: center;
34 | }
35 | .checkboxes {
36 | margin-bottom: 2em;
37 | }
38 |
39 | select {
40 | margin-left: 1em;
41 | }
42 |
43 | label {
44 | margin: 2em 2em 2em 0;
45 | padding: 5px;
46 | border: 1px solid gray;
47 | border-radius: 5px;
48 | }
49 |
50 | .install textarea {
51 | width: 240px;
52 | height: 20px;
53 | padding: 5px;
54 | resize: none;
55 | }
56 |
--------------------------------------------------------------------------------
/hie.yaml:
--------------------------------------------------------------------------------
1 | cradle:
2 | stack:
3 | - path: "./src"
4 | component: "json-to-haskell:lib"
5 |
6 | - path: "./app"
7 | component: "json-to-haskell:exe:json-to-haskell-exe"
8 |
9 | - path: "./test"
10 | component: "json-to-haskell:test:json-to-haskell-test"
11 |
--------------------------------------------------------------------------------
/json-to-haskell.cabal:
--------------------------------------------------------------------------------
1 | cabal-version: 1.12
2 |
3 | -- This file has been generated from package.yaml by hpack version 0.33.0.
4 | --
5 | -- see: https://github.com/sol/hpack
6 | --
7 | -- hash: cc4c6327c9fb7753bcb567426edabc8f0136cde2af157aee72e577bdd2e492d7
8 |
9 | name: json-to-haskell
10 | version: 0.1.1.2
11 | description: Please see the README on GitHub at
12 | homepage: https://github.com/ChrisPenner/json-to-haskell#readme
13 | bug-reports: https://github.com/ChrisPenner/json-to-haskell/issues
14 | author: Chris Penner
15 | maintainer: christopher.penner@gmail.com
16 | copyright: 2020 Chris Penner
17 | license: BSD3
18 | license-file: LICENSE
19 | build-type: Simple
20 | extra-source-files:
21 | README.md
22 | CHANGELOG.md
23 |
24 | source-repository head
25 | type: git
26 | location: https://github.com/ChrisPenner/json-to-haskell
27 |
28 | library
29 | exposed-modules:
30 | JsonToHaskell
31 | JsonToHaskell.Internal.Options
32 | JsonToHaskell.Internal.Parser
33 | JsonToHaskell.Internal.Printer
34 | other-modules:
35 | Paths_json_to_haskell
36 | hs-source-dirs:
37 | src
38 | ghc-options: -Wall -Wincomplete-patterns
39 | build-depends:
40 | aeson
41 | , aeson-extra
42 | , base >=4.7 && <5
43 | , bimap
44 | , casing
45 | , containers
46 | , microlens-platform
47 | , mtl
48 | , nonempty-containers
49 | , recursion-schemes
50 | , text
51 | , unordered-containers
52 | , vector
53 | default-language: Haskell2010
54 |
55 | executable json-to-haskell
56 | main-is: Main.hs
57 | other-modules:
58 | Flags
59 | Paths_json_to_haskell
60 | hs-source-dirs:
61 | app
62 | ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
63 | build-depends:
64 | aeson
65 | , aeson-extra
66 | , ansi-wl-pprint
67 | , base >=4.7 && <5
68 | , bimap
69 | , bytestring
70 | , casing
71 | , containers
72 | , json-to-haskell
73 | , microlens-platform
74 | , mtl
75 | , nonempty-containers
76 | , optparse-applicative
77 | , raw-strings-qq
78 | , recursion-schemes
79 | , text
80 | , unordered-containers
81 | , vector
82 | default-language: Haskell2010
83 |
84 | test-suite json-to-haskell-test
85 | type: exitcode-stdio-1.0
86 | main-is: Spec.hs
87 | other-modules:
88 | Paths_json_to_haskell
89 | hs-source-dirs:
90 | test
91 | ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
92 | build-depends:
93 | aeson
94 | , aeson-extra
95 | , base >=4.7 && <5
96 | , bimap
97 | , bytestring
98 | , casing
99 | , containers
100 | , hspec
101 | , json-to-haskell
102 | , microlens-platform
103 | , mtl
104 | , nonempty-containers
105 | , raw-strings-qq
106 | , recursion-schemes
107 | , text
108 | , unordered-containers
109 | , vector
110 | default-language: Haskell2010
111 |
--------------------------------------------------------------------------------
/package.yaml:
--------------------------------------------------------------------------------
1 | name: json-to-haskell
2 | version: 0.1.1.2
3 | github: "ChrisPenner/json-to-haskell"
4 | license: BSD3
5 | author: "Chris Penner"
6 | maintainer: "christopher.penner@gmail.com"
7 | copyright: "2020 Chris Penner"
8 |
9 | extra-source-files:
10 | - README.md
11 | - CHANGELOG.md
12 |
13 | # Metadata used when publishing your package
14 | # synopsis: Short description of your package
15 | # category: Web
16 |
17 | # To avoid duplicated efforts in documentation and dealing with the
18 | # complications of embedding Haddock markup inside cabal files, it is
19 | # common to point users to the README.md file.
20 | description: Please see the README on GitHub at
21 |
22 | dependencies:
23 | - base >= 4.7 && < 5
24 | - recursion-schemes
25 | - aeson
26 | - aeson-extra
27 | - containers
28 | - unordered-containers
29 | - text
30 | - mtl
31 | - casing
32 | - nonempty-containers
33 | - bimap
34 | - microlens-platform
35 | - vector
36 |
37 | ghc-options:
38 | - -Wall
39 |
40 | library:
41 | source-dirs: src
42 | ghc-options:
43 | - -Wincomplete-patterns
44 |
45 | executables:
46 | json-to-haskell:
47 | main: Main.hs
48 | source-dirs: app
49 | ghc-options:
50 | - -threaded
51 | - -rtsopts
52 | - -with-rtsopts=-N
53 | dependencies:
54 | - json-to-haskell
55 | - raw-strings-qq
56 | - optparse-applicative
57 | - bytestring
58 | - ansi-wl-pprint
59 |
60 | tests:
61 | json-to-haskell-test:
62 | main: Spec.hs
63 | source-dirs: test
64 | ghc-options:
65 | - -threaded
66 | - -rtsopts
67 | - -with-rtsopts=-N
68 | dependencies:
69 | - json-to-haskell
70 | - hspec
71 | - text
72 | - bytestring
73 | - raw-strings-qq
74 |
--------------------------------------------------------------------------------
/src/JsonToHaskell.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE OverloadedStrings #-}
2 | {-# LANGUAGE LambdaCase #-}
3 | {-# LANGUAGE FlexibleContexts #-}
4 | {-# LANGUAGE ScopedTypeVariables #-}
5 | {-# LANGUAGE DataKinds #-}
6 | {-# LANGUAGE StandaloneDeriving #-}
7 | {-# LANGUAGE GADTs #-}
8 | {-# LANGUAGE KindSignatures #-}
9 | {-# LANGUAGE ViewPatterns #-}
10 | {-# LANGUAGE TemplateHaskell #-}
11 | {-# LANGUAGE TypeApplications #-}
12 | module JsonToHaskell
13 | ( jsonToHaskell
14 | , simpleOptions
15 | , performantOptions
16 | , Options(..)
17 | , NumberType(..)
18 | , TextType(..)
19 | , MapType(..)
20 | , ListType(..)
21 | ) where
22 |
23 | import JsonToHaskell.Internal.Options
24 | import JsonToHaskell.Internal.Printer
25 | import JsonToHaskell.Internal.Parser
26 | import Data.Aeson (Value)
27 | import qualified Data.Text as T
28 | import qualified Data.Bimap as BM
29 |
30 | -- | Transform an Aeson 'Value' into a complete Haskell module (as 'T.Text').
31 | -- This function is all that you need.
32 | --
33 | -- Use 'defaultOptions' as a reasonable starting point.
34 | jsonToHaskell :: Options -> Value -> T.Text
35 | jsonToHaskell opts v = do
36 | let allStructs = analyze v
37 | namedStructs = canonicalizeRecordNames allStructs
38 | referencedStructs = BM.mapR (fmap (addReferences namedStructs)) namedStructs
39 | in T.strip $ writeModel opts referencedStructs
40 |
--------------------------------------------------------------------------------
/src/JsonToHaskell/Internal/Options.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE TemplateHaskell #-}
2 | module JsonToHaskell.Internal.Options where
3 |
4 | import Lens.Micro.Platform (makeLenses)
5 |
6 | -- | Choose which type to use for Numbers
7 | data NumberType =
8 | -- | Use 'Int' for whole numbers, 'Float' for decimals
9 | UseSmartFloats
10 | -- | Use 'Int' for whole numbers, 'Double' for decimals
11 | | UseSmartDoubles
12 | -- | Use 'Float' for all numbers
13 | | UseFloats
14 | -- | Use 'Double' for all numbers
15 | | UseDoubles
16 | -- | Use 'Scientific' for all numbers
17 | | UseScientific
18 | deriving (Show, Eq, Ord)
19 |
20 | -- | Choose which type to use for strings
21 | data TextType =
22 | -- | Use 'String' for strings
23 | UseString
24 | -- | Use 'Text' for string
25 | | UseText
26 | -- | Use 'ByteString' for strings
27 | | UseByteString
28 | deriving (Show, Eq, Ord)
29 |
30 | -- | Choose which type to use for key-value maps
31 | data MapType =
32 | -- | Use Data.Map
33 | UseMap
34 | -- | Use Data.HashMap
35 | | UseHashMap
36 | deriving (Show, Eq, Ord)
37 |
38 | -- | Choose which type to use for arrays
39 | data ListType =
40 | -- | Use lists
41 | UseList
42 | -- | Use vectors
43 | | UseVector
44 | deriving (Show, Eq, Ord)
45 |
46 | -- | Options for module generation
47 | data Options = Options
48 | { _tabStop :: Int
49 | , _numberType :: NumberType
50 | , _textType :: TextType
51 | , _mapType :: MapType
52 | , _listType :: ListType
53 | , _includeHeader :: Bool
54 | , _includeInstances :: Bool
55 | , _strictData :: Bool
56 | , _prefixRecordFields :: Bool
57 | } deriving (Show, Eq, Ord)
58 |
59 |
60 | makeLenses ''Options
61 |
62 | -- | Simple module generation options.
63 | -- These are reasonable defaults for a simple module
64 | simpleOptions :: Options
65 | simpleOptions = Options
66 | { _tabStop = 2
67 | , _numberType = UseDoubles
68 | , _textType = UseText
69 | , _mapType = UseMap
70 | , _listType = UseList
71 | , _includeHeader = True
72 | , _includeInstances = False
73 | , _strictData = False
74 | , _prefixRecordFields = True
75 | }
76 |
77 | -- | Use more performant data types, use these for production apps.
78 | performantOptions :: Options
79 | performantOptions = Options
80 | { _tabStop = 2
81 | , _numberType = UseDoubles
82 | , _textType = UseText
83 | , _mapType = UseMap
84 | , _listType = UseList
85 | , _includeHeader = True
86 | , _includeInstances = False
87 | , _strictData = True
88 | , _prefixRecordFields = True
89 | }
90 |
91 |
92 |
--------------------------------------------------------------------------------
/src/JsonToHaskell/Internal/Parser.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE DataKinds #-}
2 | {-# LANGUAGE LambdaCase #-}
3 | {-# LANGUAGE KindSignatures #-}
4 | {-# LANGUAGE StandaloneDeriving #-}
5 | {-# LANGUAGE ViewPatterns #-}
6 | {-# LANGUAGE GADTs #-}
7 | {-# LANGUAGE FlexibleContexts #-}
8 | {-# LANGUAGE OverloadedStrings #-}
9 | module JsonToHaskell.Internal.Parser where
10 |
11 | import Control.Monad.State
12 | import Control.Monad.Reader
13 | import Data.Aeson (Value)
14 | import Data.Aeson.Extra.Recursive (ValueF(..))
15 | import Data.Char (isAlpha, isAlphaNum)
16 | import Data.Functor.Foldable (cataA)
17 | import Data.Foldable (for_)
18 | import Data.Either (fromRight)
19 | import Text.Casing (toPascal, fromAny)
20 | import qualified Data.List as L
21 | import qualified Data.Bimap as BM
22 | import qualified Data.HashMap.Strict as HM
23 | import qualified Data.Map as M
24 | import qualified Data.Set.NonEmpty as NES
25 | import qualified Data.Text as T
26 | import qualified Data.Vector as V
27 | import qualified Data.Set as S
28 |
29 | -- | Used to track whether the value was fractional or whole.
30 | data NumberVariant = Fractional | Whole
31 | deriving (Show, Eq, Ord)
32 |
33 | -- a DataKind for tracking whether a structure contains nested structs or Record Names
34 | data RecordType = Ref | Structure
35 | -- | The representation of a record's field types
36 | type RecordFields r = HM.HashMap T.Text (Struct r)
37 | -- | The recursive representation of the "type" of a JSON value
38 | data Struct (r :: RecordType) where
39 | SArray :: Struct r -> Struct r
40 | SRecord :: (RecordFields 'Structure) -> Struct 'Structure
41 | SRecordRef :: T.Text -> Struct 'Ref
42 | SMap :: Struct r -> Struct r
43 | SBool :: Struct r
44 | SNumber :: NumberVariant -> Struct r
45 | SNull :: Struct r
46 | SString :: Struct r
47 | SValue :: Struct r
48 | deriving instance Show (Struct r)
49 | deriving instance Eq (Struct r)
50 | deriving instance Ord (Struct r)
51 |
52 | type AnalyzeM a =
53 | ReaderT T.Text
54 | (State (M.Map (RecordFields 'Structure)
55 | (NES.NESet T.Text)))
56 | a
57 |
58 | -- | Convert a 'Value' into a Typed representation of its structure, tracking reasonable names
59 | -- for each subrecord along the way
60 | analyze :: Value
61 | -> M.Map (RecordFields 'Structure) (NES.NESet T.Text)
62 | analyze value =
63 | flip execState mempty . flip runReaderT "Model" $ cataA alg value
64 | where
65 | -- Algebra for reducing a JSON ValueF from the bottom up.
66 | alg :: ValueF (AnalyzeM (Struct 'Structure))
67 | -> AnalyzeM (Struct 'Structure)
68 | alg = \case
69 | ObjectF m -> do
70 | m' <- flip HM.traverseWithKey m
71 | $ \fieldName substructM -> do
72 | -- Pass down the current field name as a heuristic for picking a
73 | -- reasonable name for records encountered at the lower levels
74 | local (const fieldName) substructM
75 | nameRecord m'
76 | pure $ SRecord m'
77 | ArrayF itemsM -> do
78 | case (itemsM V.!? 0) of
79 | Just s -> SArray <$> s
80 | Nothing -> pure $ SArray SValue
81 | StringF _ -> pure SString
82 | NumberF n -> pure . SNumber
83 | $ if (ceiling n == (floor n :: Int))
84 | then Whole
85 | else Fractional
86 | BoolF _ -> pure SBool
87 | NullF -> pure SNull
88 |
89 | -- Pair the given record with the name in scope
90 | nameRecord :: RecordFields 'Structure -> AnalyzeM ()
91 | nameRecord record = do
92 | name <- asks toRecordName
93 | modify . flip M.alter record $ \case
94 | Nothing -> Just $ NES.singleton name
95 | Just s -> Just $ NES.insert name s
96 |
97 | -- | Given a mapping of structures to name candidates, pick names for each record, avoiding
98 | -- duplicates
99 | canonicalizeRecordNames :: M.Map (RecordFields 'Structure) (NES.NESet T.Text) -> BM.Bimap T.Text (RecordFields 'Structure)
100 | canonicalizeRecordNames m =
101 | flip execState BM.empty $ do
102 | -- Pick names for those with the fewest candidates first
103 | -- This helps give everything a "good" name
104 | for_ (L.sortOn (NES.size . snd) . M.toList $ m) $ \(struct, names) -> do
105 | existingNames <- get
106 | let bestName = chooseBestName names (S.fromAscList . BM.keys $ existingNames)
107 | modify (BM.insert bestName struct)
108 |
109 | -- | Choose a "fresh" name given a list of candidates and a map of names which have already
110 | -- been chosen.
111 | chooseBestName :: NES.NESet T.Text -> S.Set T.Text -> T.Text
112 | chooseBestName candidates takenNames =
113 | case S.lookupMin $ S.difference (NES.toSet candidates) takenNames of
114 | Nothing -> makeUnique (NES.findMin candidates) takenNames
115 | Just name -> name
116 |
117 | -- | Given a name candidate, make it unique amongs the set of taken names by appending
118 | -- the lowest number which isn't yet taken. E.g. if "name" is taken, try "name2", "name3"
119 | -- ad infinitum
120 | makeUnique :: T.Text -> S.Set T.Text -> T.Text
121 | makeUnique candidate takenNames =
122 | -- construct an infinite candidates list of ["name", "name2", "name3", ...]
123 | let candidates = (candidate <>) <$> ("" : fmap (T.pack . show) [(2 :: Int)..])
124 | -- Get the first unique name from the list.
125 | -- The list is infinite, so head is safe here.
126 | in head . filter (not . flip S.member takenNames) $ candidates
127 |
128 | -- | Switch literal struct definitions with their "names"
129 | addReferences :: BM.Bimap T.Text (RecordFields 'Structure) -> Struct 'Structure -> Struct 'Ref
130 | addReferences m =
131 | \case
132 | SNull -> SNull
133 | SString -> SString
134 | SNumber t -> SNumber t
135 | SBool -> SBool
136 | SValue -> SValue
137 | SMap s -> SMap (addReferences m s)
138 | SArray s -> SArray (addReferences m s)
139 | SRecord s -> SRecordRef . fromRight (error "Expected record name but wasn't found") $ BM.lookupR s m
140 |
141 | -- | Clean a name into a valid Haskell record name
142 | toRecordName :: T.Text -> T.Text
143 | toRecordName = T.filter (isAlphaNum) . T.pack . toPascal . fromAny . T.unpack . T.dropWhile (not . isAlpha)
144 |
--------------------------------------------------------------------------------
/src/JsonToHaskell/Internal/Printer.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE TemplateHaskell #-}
2 | {-# LANGUAGE LambdaCase #-}
3 | {-# LANGUAGE OverloadedStrings #-}
4 | {-# LANGUAGE ViewPatterns #-}
5 | {-# LANGUAGE FlexibleContexts #-}
6 | {-# LANGUAGE DataKinds #-}
7 | {-# LANGUAGE GADTs #-}
8 | module JsonToHaskell.Internal.Printer where
9 |
10 | import Lens.Micro.Platform (makeLenses)
11 | import JsonToHaskell.Internal.Parser
12 | import JsonToHaskell.Internal.Options
13 | import Control.Monad.State
14 | import Control.Monad.Reader
15 | import Control.Monad.Writer
16 | import Data.Foldable (for_, fold)
17 | import qualified Data.Bimap as BM
18 | import qualified Data.HashMap.Strict as HM
19 | import qualified Data.Map as M
20 | import qualified Data.Text as T
21 | import Text.Casing (toCamel, fromAny)
22 | import Data.Char (isAlpha, isAlphaNum)
23 | import Lens.Micro.Platform (view, (+~), (<&>))
24 |
25 |
26 | -- | The environment used for printing the module
27 | data Env = Env
28 | { _options :: Options
29 | , _indentationLevel :: Int
30 | }
31 | makeLenses ''Env
32 |
33 |
34 |
35 | -- | Convert a name into a valid haskell field name
36 | toFieldName :: T.Text -> T.Text
37 | toFieldName = T.filter (isAlphaNum) . T.pack . toCamel . fromAny . T.unpack . T.dropWhile (not . isAlpha)
38 |
39 | type StructName = T.Text
40 |
41 | -- | Wrap a writer in parens
42 | parens :: MonadWriter T.Text m => m a -> m a
43 | parens m =
44 | tell "(" *> m <* tell ")"
45 |
46 | -- | Embed the given writer at the correct level of indentation and add a newline
47 | line :: (MonadReader Env m, MonadWriter T.Text m) => m a -> m a
48 | line m = do
49 | n <- view indentationLevel
50 | tell $ T.replicate n " "
51 | a <- m
52 | newline
53 | return a
54 |
55 | -- | Add a newline
56 | newline :: MonadWriter T.Text m => m ()
57 | newline = tell "\n"
58 |
59 | -- | Indent all 'line's of the given writer by one tabstop
60 | indented :: (MonadReader Env m, MonadWriter T.Text m) => m a -> m a
61 | indented m = do
62 | n <- view (options . tabStop)
63 | local (indentationLevel +~ n) m
64 |
65 | type Builder a = ReaderT Env (Writer T.Text) ()
66 |
67 | writeFieldName :: T.Text -> T.Text -> Builder ()
68 | writeFieldName recordName fieldName = do
69 | addPrefix <- view (options . prefixRecordFields)
70 | let fieldName' = if addPrefix
71 | then recordName <> toRecordName fieldName
72 | else fieldName
73 | tell $ toFieldName fieldName'
74 |
75 | -- | Write out the Haskell code for a record data type
76 | writeRecord :: StructName -> RecordFields 'Ref -> Builder ()
77 | writeRecord name struct = do
78 | line . tell . fold $ ["data ", name, " = ", name]
79 |
80 | indented $ do
81 | when (HM.null struct) . line $ tell "{"
82 | for_ (zip [0 :: Int ..] $ HM.toList struct) $ \(i, (k, v)) -> do
83 | line $ do
84 | if (i == 0) then tell "{ "
85 | else tell ", "
86 | writeFieldName name k
87 | tell " :: "
88 | useStrictData <- view (options . strictData)
89 | when useStrictData (tell "!")
90 | writeType False v
91 | indented . line $ do
92 | tell "} "
93 | tell "deriving (Show, Eq, Ord)"
94 |
95 | -- | Write out the Haskell code for a ToJSON instance for the given record
96 | writeToJSONInstance :: StructName -> RecordFields 'Ref -> Builder ()
97 | writeToJSONInstance name struct = do
98 | line $ tell $ "instance ToJSON " <> name <> " where"
99 | indented $ do
100 | line $ do
101 | tell $ "toJSON " <> name
102 | when (not . HM.null $ struct) $ tell "{..}"
103 | tell " = object"
104 | indented $ do
105 | when (HM.null struct) . line $ tell "["
106 | for_ (zip [0 :: Int ..] $ HM.keys struct) $ \(i, k) -> do
107 | line $ do
108 | if (i == 0) then tell "[ "
109 | else tell ", "
110 | tell $ "\"" <> escapeQuotes k <> "\""
111 | tell " .= "
112 | writeFieldName name k
113 | line . tell $ "] "
114 |
115 | -- | Write out the Haskell code for a FromJSON instance for the given record
116 | writeFromJSONInstance :: StructName -> RecordFields 'Ref -> Builder ()
117 | writeFromJSONInstance name struct = do
118 | line $ tell $ "instance FromJSON " <> name <> " where"
119 | indented $ do
120 | line $ tell $ "parseJSON (Object v) = do"
121 | indented $ do
122 | for_ (HM.keys struct) $ \k -> do
123 | line $ do
124 | writeFieldName name k
125 | tell " <- v .: "
126 | tell $ "\"" <> escapeQuotes k <> "\""
127 | line $ do
128 | tell $ "pure $ " <> name
129 | when (not . HM.null $ struct) $ tell "{..}"
130 | line $ tell $ "parseJSON invalid ="
131 | indented $ do
132 | line . tell $ "prependFailure \"parsing " <> name <> " failed, \""
133 | indented . line . tell $ "(typeMismatch \"Object\" invalid)"
134 |
135 |
136 | -- | Write out the Haskell representation for a given JSON type
137 | writeType :: Bool -> Struct 'Ref -> Builder ()
138 | writeType nested struct = do
139 | strict <- view (options . strictData)
140 | let wrapOuter = if strict || nested then parens else id
141 | case struct of
142 | SNull -> wrapOuter $ tell "Maybe Value"
143 | SString -> do
144 | getTextType >>= tell
145 | SNumber t -> do
146 | pref <- view (options . numberType)
147 | case (pref, t) of
148 | (UseFloats, _) -> tell "Float"
149 | (UseDoubles, _) -> tell "Double"
150 | (UseScientific, _) -> tell "Scientific"
151 | (UseSmartFloats, Fractional) -> tell "Float"
152 | (UseSmartFloats, Whole) -> tell "Int"
153 | (UseSmartDoubles, Fractional) -> tell "Double"
154 | (UseSmartDoubles, Whole) -> tell "Int"
155 |
156 | SBool -> tell "Bool"
157 | SValue -> tell "Value"
158 | SMap s -> do
159 | txtType <- getTextType
160 | mapStr <- view (options . mapType) <&> \case
161 | UseMap -> "Map"
162 | UseHashMap -> "HashMap"
163 | wrapOuter $ tell (mapStr <> " " <> txtType <> " ") >> writeType True s
164 | SArray s -> do
165 | view (options . listType) >>= \case
166 | UseList -> tell "[" >> writeType False s >> tell "]"
167 | UseVector -> wrapOuter $ tell "Vector " >> writeType True s
168 | SRecordRef n -> tell n
169 | where
170 | getTextType = do
171 | view (options . textType) <&> \case
172 | UseString -> "String"
173 | UseByteString -> "ByteString"
174 | UseText -> "Text"
175 |
176 | -- | Write out all the given records and their instances
177 | writeModel :: Options -> BM.Bimap T.Text (RecordFields 'Ref) -> T.Text
178 | writeModel opts (BM.toMap -> m) = execWriter . flip runReaderT (Env opts 0) $ do
179 | incHeader <- view (options . includeHeader)
180 | incInstances <- view (options . includeInstances)
181 | includeScientific <- view (options . numberType) <&> (== UseScientific)
182 | includeVector <- view (options . listType) <&> (== UseVector)
183 | includeText <- view (options . textType) <&> (== UseText)
184 | includeByteString <- view (options . textType) <&> (== UseByteString)
185 | when incHeader $ do
186 | tell . T.unlines $
187 | [ "{-# LANGUAGE DuplicateRecordFields #-}"
188 | , "{-# LANGUAGE RecordWildCards #-}"
189 | , "{-# LANGUAGE OverloadedStrings #-}"
190 | , "module Model where"
191 | , ""
192 | , "import Data.Aeson (ToJSON(..), FromJSON(..), Value(..), (.:), (.=), object)"
193 | , "import Data.Aeson.Types (prependFailure, typeMismatch)"
194 | ]
195 | when includeVector . line . tell $ "import Data.Vector (Vector)"
196 | when includeScientific . line . tell $ "import Data.Scientific (Scientific)"
197 | when includeText . line . tell $ "import Data.Text (Text)"
198 | when includeByteString . line . tell $ "import Data.ByteString (ByteString)"
199 | newline
200 | void . flip M.traverseWithKey m $ \k v -> do
201 | writeRecord k v
202 | newline
203 | when incInstances $ do
204 | void . flip M.traverseWithKey m $ \k v -> do
205 | writeToJSONInstance k v
206 | newline
207 | void . flip M.traverseWithKey m $ \k v -> do
208 | writeFromJSONInstance k v
209 | newline
210 |
211 | escapeQuotes :: T.Text -> T.Text
212 | escapeQuotes = T.replace "\"" "\\\""
213 |
--------------------------------------------------------------------------------
/stack.yaml:
--------------------------------------------------------------------------------
1 | # This file was automatically generated by 'stack init'
2 | #
3 | # Some commonly used options have been documented as comments in this file.
4 | # For advanced use and comprehensive documentation of the format, please see:
5 | # https://docs.haskellstack.org/en/stable/yaml_configuration/
6 |
7 | # Resolver to choose a 'specific' stackage snapshot or a compiler version.
8 | # A snapshot resolver dictates the compiler version and the set of packages
9 | # to be used for project dependencies. For example:
10 | #
11 | # resolver: lts-3.5
12 | # resolver: nightly-2015-09-21
13 | # resolver: ghc-7.10.2
14 | #
15 | # The location of a snapshot can be provided as a file or url. Stack assumes
16 | # a snapshot provided as a file might change, whereas a url resource does not.
17 | #
18 | # resolver: ./custom-snapshot.yaml
19 | # resolver: https://example.com/snapshots/2018-01-01.yaml
20 | resolver: lts-16.17
21 |
22 | # User packages to be built.
23 | # Various formats can be used as shown in the example below.
24 | #
25 | # packages:
26 | # - some-directory
27 | # - https://example.com/foo/bar/baz-0.0.2.tar.gz
28 | # subdirs:
29 | # - auto-update
30 | # - wai
31 | packages:
32 | - .
33 | # Dependency packages to be pulled from upstream that are not in the resolver.
34 | # These entries can reference officially published versions as well as
35 | # forks / in-progress versions pinned to a git hash. For example:
36 | #
37 | extra-deps:
38 | - aeson-extra-0.4.1.3@sha256:8ad8e4d28e46280ea98af2e94dcaaf524c396c9d91b1eba867961efc6e7f923f,2997
39 | #
40 | # extra-deps: []
41 |
42 | # Override default flag values for local packages and extra-deps
43 | # flags: {}
44 |
45 | # Extra package databases containing global packages
46 | # extra-package-dbs: []
47 |
48 | # Control whether we use the GHC we find on the path
49 | # system-ghc: true
50 | #
51 | # Require a specific version of stack, using version ranges
52 | # require-stack-version: -any # Default
53 | # require-stack-version: ">=2.5"
54 | #
55 | # Override the architecture used by stack, especially useful on Windows
56 | # arch: i386
57 | # arch: x86_64
58 | #
59 | # Extra directories used by stack for building
60 | # extra-include-dirs: [/path/to/dir]
61 | # extra-lib-dirs: [/path/to/dir]
62 | #
63 | # Allow a newer minor version of GHC than the snapshot specifies
64 | # compiler-check: newer-minor
65 |
--------------------------------------------------------------------------------
/stack.yaml.lock:
--------------------------------------------------------------------------------
1 | # This file was autogenerated by Stack.
2 | # You should not edit this file by hand.
3 | # For more information, please see the documentation at:
4 | # https://docs.haskellstack.org/en/stable/lock_files
5 |
6 | packages:
7 | - completed:
8 | hackage: aeson-extra-0.4.1.3@sha256:8ad8e4d28e46280ea98af2e94dcaaf524c396c9d91b1eba867961efc6e7f923f,2997
9 | pantry-tree:
10 | size: 1145
11 | sha256: 432b1bdef20887031fc88dbba9bd13d18594d459a3bd1227da7ec65f2a6ed722
12 | original:
13 | hackage: aeson-extra-0.4.1.3@sha256:8ad8e4d28e46280ea98af2e94dcaaf524c396c9d91b1eba867961efc6e7f923f,2997
14 | snapshots:
15 | - completed:
16 | size: 532386
17 | url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/16/17.yaml
18 | sha256: d3ee1ae797cf63189c95cf27f00700304946c5cb3c1e6a82001cd6584a221e1b
19 | original: lts-16.17
20 |
--------------------------------------------------------------------------------
/test/Spec.hs:
--------------------------------------------------------------------------------
1 | {-# LANGUAGE OverloadedStrings #-}
2 | {-# LANGUAGE QuasiQuotes #-}
3 | import Test.Hspec
4 |
5 | import JsonToHaskell
6 | import Data.Maybe
7 | import Data.Aeson
8 | import qualified Data.ByteString.Lazy as BL
9 | import qualified Data.ByteString.Lazy.Char8 as BC
10 | import qualified Data.Text as T
11 | import Text.RawString.QQ (r)
12 |
13 | shouldRender :: BL.ByteString -> T.Text -> Expectation
14 | shouldRender inp out =
15 | (jsonToHaskell simpleOptions{_includeHeader=False, _includeInstances=False} (fromMaybe (error $ "bad json: " <> BC.unpack inp) $ decode inp))
16 | `shouldBe` T.strip out
17 |
18 |
19 | main :: IO ()
20 | main = hspec spec
21 |
22 | -- TODO: Should probably alphabetize records internally to ensure consistent order.
23 | spec :: Spec
24 | spec = do
25 | describe "analyze" $ do
26 | it "should build a record with all types" $ do
27 | [r|
28 | { "a": 1
29 | , "b": "hi"
30 | , "c": [null]
31 | , "d": 2.5
32 | }
33 | |]
34 | `shouldRender`
35 | [r|
36 | data Model = Model
37 | { modelA :: Double
38 | , modelD :: Double
39 | , modelB :: Text
40 | , modelC :: [Maybe Value]
41 | } deriving (Show, Eq, Ord)
42 | |]
43 | it "should share records definitions for identical subrecords" $ do
44 | [r|
45 | { "a": { "name": "bob", "age": 20 }
46 | , "b": { "name": "alice", "age": 22 }
47 | }
48 | |]
49 | `shouldRender`
50 | [r|
51 | data A = A
52 | { aAge :: Double
53 | , aName :: Text
54 | } deriving (Show, Eq, Ord)
55 |
56 | data Model = Model
57 | { modelA :: A
58 | , modelB :: A
59 | } deriving (Show, Eq, Ord)
60 | |]
61 | it "should pick good names for differing records which share field names" $ do
62 | [r|
63 | { "a": { "field": {"name": "bob" } }
64 | , "b": { "field": {"age": 22 } }
65 | }
66 | |]
67 | `shouldRender`
68 | [r|
69 | data A = A
70 | { aField :: Field
71 | } deriving (Show, Eq, Ord)
72 |
73 | data B = B
74 | { bField :: Field2
75 | } deriving (Show, Eq, Ord)
76 |
77 | data Field = Field
78 | { fieldName :: Text
79 | } deriving (Show, Eq, Ord)
80 |
81 | data Field2 = Field2
82 | { field2Age :: Double
83 | } deriving (Show, Eq, Ord)
84 |
85 | data Model = Model
86 | { modelA :: A
87 | , modelB :: B
88 | } deriving (Show, Eq, Ord)
89 | |]
90 | it "should pick the best name if there are multiple possible names but some conflict" $ do
91 | [r|
92 | { "a": { "field": {"name": "bob" } }
93 | , "b": { "field": {"age": 22 } }
94 | , "c": { "other": {"age": 22 } }
95 | }
96 | |]
97 | `shouldRender`
98 | [r|
99 | data A = A
100 | { aField :: Field
101 | } deriving (Show, Eq, Ord)
102 |
103 | data B = B
104 | { bField :: Other
105 | } deriving (Show, Eq, Ord)
106 |
107 | data C = C
108 | { cOther :: Other
109 | } deriving (Show, Eq, Ord)
110 |
111 | data Field = Field
112 | { fieldName :: Text
113 | } deriving (Show, Eq, Ord)
114 |
115 | data Model = Model
116 | { modelA :: A
117 | , modelB :: B
118 | , modelC :: C
119 | } deriving (Show, Eq, Ord)
120 |
121 | data Other = Other
122 | { otherAge :: Double
123 | } deriving (Show, Eq, Ord)
124 | |]
125 |
126 | it "should sanitize weird field and record names" $ do
127 | [r|
128 | { "'t\"!h.*#e nam9e": {"'9sub--field": "bob" }
129 | }
130 | |]
131 | `shouldRender`
132 | [r|
133 | data Model = Model
134 | { modelTheNam9e :: TheNam9e
135 | } deriving (Show, Eq, Ord)
136 |
137 | data TheNam9e = TheNam9e
138 | { theNam9eSubField :: Text
139 | } deriving (Show, Eq, Ord)
140 | |]
141 |
--------------------------------------------------------------------------------