fn fmt(&self, f: &mut Formatter<'_>) -> Result {
        match self {
            // Data::Heaped(_) => unreachable!("Can not display heaped data"),
            // Data::NotInit => unreachable!("Can not display uninitialized
            // data"),
            Data::Float(n) => write!(f, "{}", n),
            Data::Integer(n) => write!(f, "{}", n),
            Data::Boolean(b) => {
                write!(f, "{}", if *b { "true" } else { "false" })
            }
            Data::String(s) => write!(f, "{}", s),
            Data::Lambda(_) => unreachable!("Can not display naked functions"),
            Data::Closure(_) => write!(f, "Function"),
            Data::Kind(_) => unreachable!("Can not display naked labels"),
            Data::Label(n, v) => write!(f, "{} {}", n, v),
            Data::Unit => write!(f, "()"),
            Data::Tuple(t) => write!(
                f,
                "({})",
                t.iter()
                    .map(|i| format!("{}", i))
                    .collect::<Vec<String>>()
                    .join(", ")
            ),
            // TODO: create representation
            _ => panic!("Representation is not yet implemented for this"),
        }
    }
Displays some Passerine Data in a pretty manner, as if it were printed
to console.
passerine-common/src/data.rs