fn main() -> Void {
    let greeting: String = "Hello from Engram"
    let count: Int = 42
}

type Point {
    x: Float
    y: Float
}

fn distance(a: Point, b: Point) -> Float {
    let dx: Float = a.x - b.x
    let dy: Float = a.y - b.y
    return dx * dx + dy * dy
}

type Circle {
    center: Point
    radius: Float
}

enum Shape {
    Dot
    Line(String)
    Polygon(Int)
}

fn classify(s: Shape) -> String {
    match s {
        Shape::Dot => "point"
        Shape::Line(name) => name
        Shape::Polygon(sides) => "polygon"
    }
}

// activate example — spreading activation query
// let circles: [Circle] = activate Circle where "large circles near origin"

sealed {
    let api_key: String = "secret-key"
}
