pub type LinkedList { Empty Node(a, LinkedList) } pub fn size(t: LinkedList) -> Int { when t is { Empty -> 0 Node(_, tail) -> 1 + size(tail) } } test foo() { let xs = Node(0, Node(1, Node(2, Empty))) size(xs) == 3 }