git.iko.soy/rowtype-yoga/purescript-native
on 8030607 help sign in
29 lines 565 B history raw
1module Main where
3 import Prelude
5 data Id = Id forall a. a -> a
7 runId = \id a -> case id of
8 Id f -> f a
10 data Nat = Nat forall r. r -> (r -> r) -> r
12 runNat = \nat -> case nat of
13 Nat f -> f 0 (\n -> n + 1)
15 zero = Nat (\zero _ -> zero)
17 succ = \n -> case n of
18 Nat f -> Nat (\zero succ -> succ (f zero succ))
20 add = \n m -> case n of
21 Nat f -> case m of
22 Nat g -> Nat (\zero succ -> g (f zero succ) succ)
24 one = succ zero
25 two = succ zero
26 four = add two two
27 fourNumber = runNat four
29 main = Debug.Trace.trace "Done"