Overview
Terse.jl provides the @types macro for defining Julia type hierarchies concisely.
using Pkg
Pkg.add("Terse")
Quickstart
using Terse
@types Shape > (
Circle(radius::Float64),
Rectangle(width::Float64, height::Float64)
)
@show supertype(Circle), supertype(Rectangle)
Circle(1.0), Rectangle(3.0, 4.0)
(supertype(Circle), supertype(Rectangle)) = (Main.Notebook.Shape, Main.Notebook.Shape)
(Circle(radius=1.0), Rectangle(width=3.0, height=4.0))
See Getting Started for a full overview of all supported syntax forms.