git.iko.soy/rowtype-yoga/purescript-native
on 24fdff2 help sign in
42 lines 871 B history raw
1module Main where
3import Prelude
5type Foo = (x :: Number | (y :: Number | (z :: Number)))
6type Bar = (x :: Number, y :: Number, z :: Number)
7type Baz = { w :: Number | Bar }
9foo :: { | Foo }
10foo = { x: 0.0, y: 0.0, z: 0.0 }
12bar :: { | Bar }
13bar = { x: 0.0, y: 0.0, z: 0.0 }
15id' :: Object Foo -> Object Bar
16id' = id
18foo' :: { | Foo }
19foo' = id' foo
21bar' :: { | Bar }
22bar' = id' bar
24baz :: Baz
25baz = { x: 0.0, y: 0.0, z: 0.0, w: 0.0 }
27type Quux r = (q :: Number | r)
28type Norf r = (q' :: Number | Quux r)
30quux :: { f :: { | Foo } | Quux Bar }
31quux = { f: foo', x: 0.0, y: 0.0, z: 0.0, q: 0.0 }
33quux' :: { | Norf Bar }
34quux' = { x: 0.0, y: 0.0, z: 0.0, q: 0.0, q': 0.0 }
36wildcard :: { w :: Number | _ } -> Baz
37wildcard { w: w } = { x: w, y: w, z: w, w: w }
39wildcard' :: { | Quux _ } -> Number
40wildcard' { q: q } = q
42main = Control.Monad.Eff.Console.log "Done"