///|
pub enum Fold {
  One(Char)
  Two(Char, Char)
  Three(Char, Char, Char)
}

///|
pub fn Fold::collect(self : Fold) -> Array[Char] {
  match self {
    One(c) => [c]
    Two(c1, c2) => [c1, c2]
    Three(c1, c2, c3) => [c1, c2, c3]
  }
}