Implementation of Contextual Modal Type Theory[Nanevski et al. 2008]
>> fn (x : base) -> x
fn (x : base) -> x
base -> base
fn (x : base) -> x
>> let box[U] = box[f : base -> base . fn (x : base) -> (f (f (f x)))] in box[f : base -> base. U with [U with [f/f]/f]]
let box[U] = box[f : base -> base . fn (x : base) -> f (f (f x))] in box[f : base -> base . U with [U with [f / f] / f]]
[f : base -> base |- base -> base]
box[f : base -> base . fn (x : base) -> (fn (x : base) -> f (f (f x))) ((fn (x : base) -> f (f (f x))) ((fn (x : base) -> f (f (f x))) x))]
cabal build
cabal run
You need nix flake feature
nix build .
stylish-haskell -ir src