aboutsummaryrefslogtreecommitdiff
path: root/examples/19-sums/src/HelloWorld.shed
blob: 435353bc95baf1b8919164af4535e5e8fa3b963e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct Some(value: String) {}

struct None() {}

sumtype Option = Some | None;

pub fun main() ! Io -> Unit {
    printOption!(Some("hello, world!"));
    printOption!(None());
}

fun printOption(option: Option) !Io -> Unit {
    when (option) {
        is Some {
            print!("Some(");
            print!(option.value);
            print!(")\n");
        }
        is None {
            print!("None\n");
        }
    }
}