Skip to content

Commit 1281ae2

Browse files
committed
Simpler types
1 parent 8f99b18 commit 1281ae2

File tree

3 files changed

+71
-85
lines changed

3 files changed

+71
-85
lines changed

docs/React.md

Lines changed: 28 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -26,83 +26,73 @@ data EventHandler :: * -> *
2626

2727
An event handler. The type argument represents the type of the event.
2828

29-
#### `Disallowed`
30-
31-
``` purescript
32-
data Disallowed
33-
```
34-
35-
This phantom type indicates that both read and write access to a resource are disallowed.
36-
3729
#### `Read`
3830

3931
``` purescript
40-
data Read write
32+
data Read :: !
4133
```
4234

4335
This phantom type indicates that read access to a resource is allowed.
4436

4537
#### `Write`
4638

4739
``` purescript
48-
data Write
40+
data Write :: !
4941
```
5042

5143
This phantom type indicates that write access to a resource is allowed.
5244

53-
#### `Only`
45+
#### `Disallowed`
5446

5547
``` purescript
56-
data Only
48+
type Disallowed = () :: # !
5749
```
5850

59-
This phantom type indicates that only read access to a resource is allowed.
51+
An access synonym which indicates that neither read nor write access are allowed.
6052

6153
#### `ReadWrite`
6254

6355
``` purescript
64-
type ReadWrite = Read Write
56+
type ReadWrite = (read :: Read, write :: Write)
6557
```
6658

6759
An access synonym which indicates that both read and write access are allowed.
6860

6961
#### `ReadOnly`
7062

7163
``` purescript
72-
type ReadOnly = Read Only
64+
type ReadOnly = (read :: Read)
7365
```
7466

7567
An access synonym which indicates that reads are allowed but writes are not.
7668

7769
#### `ReactState`
7870

7971
``` purescript
80-
data ReactState :: * -> * -> !
72+
data ReactState :: # ! -> !
8173
```
8274

8375
This effect indicates that a computation may read or write the component state.
8476

85-
The first type argument is either `ReadWrite`, `ReadOnly` or `Disallowed` dependeding on the context.
86-
87-
The second type argument is the type of the state of the component.
77+
The first type argument is a row of access types (`Read`, `Write`).
8878

8979
#### `ReactProps`
9080

9181
``` purescript
92-
data ReactProps :: * -> !
82+
data ReactProps :: !
9383
```
9484

9585
This effect indicates that a computation may read the component props.
9686

9787
#### `ReactRefs`
9888

9989
``` purescript
100-
data ReactRefs :: * -> !
90+
data ReactRefs :: # ! -> !
10191
```
10292

10393
This effect indicates that a computation may read the component refs.
10494

105-
The first type argument is either `ReadOnly` or `Disallowed` dependeding on the context.
95+
The first type argument is a row of access types (`Read`, `Write`).
10696

10797
#### `Refs`
10898

@@ -139,79 +129,79 @@ The type of keyboard events.
139129
#### `EventHandlerContext`
140130

141131
``` purescript
142-
type EventHandlerContext eff props state result = Eff (props :: ReactProps props, refs :: ReactRefs ReadOnly, state :: ReactState ReadWrite state | eff) result
132+
type EventHandlerContext eff props state result = Eff (props :: ReactProps, refs :: ReactRefs ReadOnly, state :: ReactState ReadWrite | eff) result
143133
```
144134

145135
A function which handles events.
146136

147137
#### `Render`
148138

149139
``` purescript
150-
type Render props state eff = ReactThis props state -> Eff (props :: ReactProps props, refs :: ReactRefs Disallowed, state :: ReactState ReadOnly state | eff) ReactElement
140+
type Render props state eff = ReactThis props state -> Eff (props :: ReactProps, refs :: ReactRefs Disallowed, state :: ReactState ReadOnly | eff) ReactElement
151141
```
152142

153143
A render function.
154144

155145
#### `GetInitialState`
156146

157147
``` purescript
158-
type GetInitialState props state eff = ReactThis props state -> Eff (props :: ReactProps props, state :: ReactState Disallowed state, refs :: ReactRefs Disallowed | eff) state
148+
type GetInitialState props state eff = ReactThis props state -> Eff (props :: ReactProps, state :: ReactState Disallowed, refs :: ReactRefs Disallowed | eff) state
159149
```
160150

161151
A get initial state function.
162152

163153
#### `ComponentWillMount`
164154

165155
``` purescript
166-
type ComponentWillMount props state eff = ReactThis props state -> Eff (props :: ReactProps props, state :: ReactState ReadWrite state, refs :: ReactRefs Disallowed | eff) Unit
156+
type ComponentWillMount props state eff = ReactThis props state -> Eff (props :: ReactProps, state :: ReactState ReadWrite, refs :: ReactRefs Disallowed | eff) Unit
167157
```
168158

169159
A component will mount function.
170160

171161
#### `ComponentDidMount`
172162

173163
``` purescript
174-
type ComponentDidMount props state eff = ReactThis props state -> Eff (props :: ReactProps props, state :: ReactState ReadWrite state, refs :: ReactRefs ReadOnly | eff) Unit
164+
type ComponentDidMount props state eff = ReactThis props state -> Eff (props :: ReactProps, state :: ReactState ReadWrite, refs :: ReactRefs ReadOnly | eff) Unit
175165
```
176166

177167
A component did mount function.
178168

179169
#### `ComponentWillReceiveProps`
180170

181171
``` purescript
182-
type ComponentWillReceiveProps props state eff = ReactThis props state -> props -> Eff (props :: ReactProps props, state :: ReactState ReadWrite state, refs :: ReactRefs ReadOnly | eff) Unit
172+
type ComponentWillReceiveProps props state eff = ReactThis props state -> props -> Eff (props :: ReactProps, state :: ReactState ReadWrite, refs :: ReactRefs ReadOnly | eff) Unit
183173
```
184174

185175
A component will receive props function.
186176

187177
#### `ShouldComponentUpdate`
188178

189179
``` purescript
190-
type ShouldComponentUpdate props state eff = ReactThis props state -> props -> state -> Eff (props :: ReactProps props, state :: ReactState ReadWrite state, refs :: ReactRefs ReadOnly | eff) Boolean
180+
type ShouldComponentUpdate props state eff = ReactThis props state -> props -> state -> Eff (props :: ReactProps, state :: ReactState ReadWrite, refs :: ReactRefs ReadOnly | eff) Boolean
191181
```
192182

193183
A should component update function.
194184

195185
#### `ComponentWillUpdate`
196186

197187
``` purescript
198-
type ComponentWillUpdate props state eff = ReactThis props state -> props -> state -> Eff (props :: ReactProps props, state :: ReactState ReadWrite state, refs :: ReactRefs ReadOnly | eff) Unit
188+
type ComponentWillUpdate props state eff = ReactThis props state -> props -> state -> Eff (props :: ReactProps, state :: ReactState ReadWrite, refs :: ReactRefs ReadOnly | eff) Unit
199189
```
200190

201191
A component will update function.
202192

203193
#### `ComponentDidUpdate`
204194

205195
``` purescript
206-
type ComponentDidUpdate props state eff = ReactThis props state -> props -> state -> Eff (props :: ReactProps props, state :: ReactState ReadOnly state, refs :: ReactRefs ReadOnly | eff) Unit
196+
type ComponentDidUpdate props state eff = ReactThis props state -> props -> state -> Eff (props :: ReactProps, state :: ReactState ReadOnly, refs :: ReactRefs ReadOnly | eff) Unit
207197
```
208198

209199
A component did update function.
210200

211201
#### `ComponentWillUnmount`
212202

213203
``` purescript
214-
type ComponentWillUnmount props state eff = ReactThis props state -> Eff (props :: ReactProps props, state :: ReactState ReadOnly state, refs :: ReactRefs ReadOnly | eff) Unit
204+
type ComponentWillUnmount props state eff = ReactThis props state -> Eff (props :: ReactProps, state :: ReactState ReadOnly, refs :: ReactRefs ReadOnly | eff) Unit
215205
```
216206

217207
A component will unmount function.
@@ -251,47 +241,47 @@ React class for components.
251241
#### `getProps`
252242

253243
``` purescript
254-
getProps :: forall props state eff. ReactThis props state -> Eff (props :: ReactProps props | eff) props
244+
getProps :: forall props state eff. ReactThis props state -> Eff (props :: ReactProps | eff) props
255245
```
256246

257247
Read the component props.
258248

259249
#### `getRefs`
260250

261251
``` purescript
262-
getRefs :: forall props state write eff. ReactThis props state -> Eff (refs :: ReactRefs (Read write) | eff) Refs
252+
getRefs :: forall props state access eff. ReactThis props state -> Eff (refs :: ReactRefs (read :: Read | access) | eff) Refs
263253
```
264254

265255
Read the component refs.
266256

267257
#### `getChildren`
268258

269259
``` purescript
270-
getChildren :: forall props state eff. ReactThis props state -> Eff (props :: ReactProps props | eff) (Array ReactElement)
260+
getChildren :: forall props state eff. ReactThis props state -> Eff (props :: ReactProps | eff) (Array ReactElement)
271261
```
272262

273263
Read the component children property.
274264

275265
#### `writeState`
276266

277267
``` purescript
278-
writeState :: forall props state eff. ReactThis props state -> state -> Eff (state :: ReactState ReadWrite state | eff) state
268+
writeState :: forall props state access eff. ReactThis props state -> state -> Eff (state :: ReactState (write :: Write | access) | eff) state
279269
```
280270

281271
Write the component state.
282272

283273
#### `readState`
284274

285275
``` purescript
286-
readState :: forall props state write eff. ReactThis props state -> Eff (state :: ReactState (Read write) state | eff) state
276+
readState :: forall props state access eff. ReactThis props state -> Eff (state :: ReactState (read :: Read | access) | eff) state
287277
```
288278

289279
Read the component state.
290280

291281
#### `transformState`
292282

293283
``` purescript
294-
transformState :: forall props state eff. ReactThis props state -> (state -> state) -> Eff (state :: ReactState ReadWrite state | eff) state
284+
transformState :: forall props state eff. ReactThis props state -> (state -> state) -> Eff (state :: ReactState ReadWrite | eff) state
295285
```
296286

297287
Transform the component state by applying a function.

0 commit comments

Comments
 (0)