26 lines
		
	
	
		
			379 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			379 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
!module Size
 | 
						|
 | 
						|
!import "lib/base.tri" Lib
 | 
						|
 | 
						|
main = size size
 | 
						|
 | 
						|
compose = \f g x : f (g x)
 | 
						|
 | 
						|
succ = Lib.y (\self :
 | 
						|
  Lib.triage
 | 
						|
    1
 | 
						|
    t
 | 
						|
    (Lib.triage
 | 
						|
      (t (t t))
 | 
						|
      (\_ Lib.tail : t t (self Lib.tail))
 | 
						|
      t))
 | 
						|
 | 
						|
size = (\x :
 | 
						|
  (Lib.y (\self x :
 | 
						|
    compose succ
 | 
						|
      (Lib.triage
 | 
						|
        (\x : x)
 | 
						|
        self
 | 
						|
        (\x y : compose (self x) (self y))
 | 
						|
        x)) x 0))
 |