Added type aliases so we can have recursive types (like Json, Yaml, etc.)