sclass HuffmanTree { settable Node root; /* algebraic Node { constructor Branch { settable Node zero; settable Node one; } constructor Leaf { settable byte literal; } } */ abstract static class Node {} static class Branch > Node { settable Node zero; settable Node one; } static class Leaf > Node { settable byte literal; } }