Agda-2.3.2.2: src/prototyping/modules/flat/test.mod
module Top where
Nat : Set
zero : Nat
suc : Nat -> Nat
plus : Nat -> Nat -> Nat
module Test1 where
module A where
z : Nat = suc (suc zero)
module B where
module C where
x : Nat = suc zero
open C
open A
y : Nat = zero
module D = B
module Test2 where
module Q where
module R where
f : Nat -> Nat = \x -> zero
module B (n : Nat) where
open Q.R public
q : Nat = n
n : Nat = B.f zero zero
module Bz = B zero renaming (q to r)
m : Nat = Bz.f zero
module Test3 where
module B (n : Nat) where
module C (m : Nat) where
q : Nat = m
z : Nat = zero
module D = B zero renaming (module C to C')
module E = D.C' (suc zero) renaming (q to m')
q : Nat = E.m'
module Test4 where
module B (n : Nat) where
m : Nat = n
module Z = B zero
z : Nat = Z.m
module C where
f : Nat -> Nat
module D where
open C
g : Nat -> Nat = f
module Ind (P : Nat -> Set) where
base : P zero
step : (n : Nat) -> P n -> P (suc n)
module Id (A : Set) where
id : A -> A = \x -> x
module Foo (x : A) where
const : (B : Set) -> B -> A
= \B -> \b -> x
module NatId = Id Nat
module Q where
module Foo' (X : Set)(x : X) = Id.Foo X x
open NatId
z : Nat = id zero
module Test5 where
f (n : Nat) : Nat = x
where
x : Nat = n
module Test6 where
module A (n : Nat) where
x : Nat = n
y : Nat = x
module B (m : Nat)(p : Nat) = A (plus m p)
module C (m : Nat) where
z : Nat = m
module A' (p : Nat) = A (plus p z)
foo : Nat = A'.y zero
module Test7 where
f (n : Nat) : Nat = x
where
module A where
x : Nat = n
open A public
module Test8 where
f (n : Nat) : Nat = x
module f where
x : Nat = n
y : Nat = f.x zero
g (n : Nat) : Nat = z n
module g (m : Nat) where
z : Nat = plus n m
z : Nat = g.z zero zero