/hall/hpack/Package/schema

Copy path to clipboard

Examples

  (schema (λ(_ : Type → Type) → <>))::{ name = "test", version = "0.0.0" }
≡ (schema (λ(_ : Type → Type) → <>)).default
∧ { name = "test", version = "0.0.0" }

Source

{-| A schema for the `Package` type.

See ./Type for an explanation of the `rec` parameter.
-}
let Default = ./Default/package.dhall

let Self = ./Type

let schema =
λ(rec : (Type → Type) → Type) →
{ Type = Self rec, default = Default.default rec }
: { Type : Type, default : Default.Type rec }

let testMinimalRequiredFields =
assert
: (schema (λ(_ : Type → Type) → <>))::{
, name = "test"
, version = "0.0.0"
}
≡ (schema (λ(_ : Type → Type) → <>)).default
∧ { name = "test", version = "0.0.0" }

in schema