git.iko.soy/rowtype-yoga/purescript-backend-optimizer
on main help sign in
21 lines 651 B history raw
1module Snapshot.Variant01 where
3import Prelude
5import Data.Variant (Variant, case_, inj, on)
6import Type.Proxy (Proxy(..))
8test1 :: Variant (foo :: Int, bar :: Boolean, baz :: String) -> String
9test1 = case_
10 # on (Proxy :: _ "foo") (\a -> show a)
11 # on (Proxy :: _ "bar") (\a -> show a)
12 # on (Proxy :: _ "baz") (\a -> a)
14test2 :: forall r. (Variant r -> String) -> Variant (foo :: Int, bar :: Boolean, baz :: String | r) -> String
15test2 =
16 on (Proxy :: _ "foo") (\a -> show a)
17 <<< on (Proxy :: _ "bar") (\a -> show a)
18 <<< on (Proxy :: _ "baz") (\a -> a)
20test3 :: forall r. Variant (foo :: Int | r)
21test3 = inj (Proxy :: _ "foo") 42