summaryrefslogtreecommitdiff
path: root/src/test/test1.sail
blob: 3580f3e6985f5e12892e0872679bf758f524e690 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
default Nat 'i
default Order 'o
default bool b
default forall 'a. list<'a> b
val forall 'a, 'b . ('a * 'b) -> 'b effect pure snd
val forall Type 'i, 'b. ('i * 'b) -> 'i effect pure fst
typedef int_list [name = "il"] = list<nat>
typedef reco = const struct forall 'i, 'a, 'b. { 'a['i] v; 'b w; }
typedef maybe = const union forall 'a. { Nne; 'a Sme; }
typedef colors = enumerate { red; green; blue }
typedef creg = register bits [5:'i] { 5 : h ; 6..7 : j}
let bool e = true
let bit v = bitzero
let ( bit [ 32 ] ) v1 = 0b101

function bit sw s = switch s { case 0 -> bitzero }

function bit main _ = {sw(0); v1[0] }