1type T = {a : A, b : B, c : U8, d : Bool}
2
3type A
4type B
5
6freeA : A -> ()
7freeB : B -> ()
8
9freeT : T take (..) -> ()
10
11freeT' : T take (a, b) -> ()
12
13free : T -> ()
14free t {a, b} = let _ = freeA a
15                ; freeB b
16                ; freeT t
17                in ()
18
19free' : T take (c,d) -> ()
20free' t {a, b} = let _ = freeA a
21                 ; freeB b
22                 ; freeT' t
23                 in ()
24