mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			773 B
		
	
	
	
		
			Standard ML
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			773 B
		
	
	
	
		
			Standard ML
		
	
	
	
	
	
 
 | 
						|
signature LAZY_BASE =
 | 
						|
   sig 
 | 
						|
      type 'a lazy
 | 
						|
      exception Undefined
 | 
						|
      val force: 'a lazy -> 'a
 | 
						|
      val delay: (unit -> 'a) -> 'a lazy
 | 
						|
      val undefined: 'a lazy
 | 
						|
   end
 | 
						|
 | 
						|
signature LAZY' =
 | 
						|
   sig
 | 
						|
      include LAZY_BASE
 | 
						|
      val isUndefined: 'a lazy -> bool
 | 
						|
      val inject : 'a -> 'a lazy
 | 
						|
      val toString: ('a -> string) -> 'a lazy -> string
 | 
						|
      val eq: ''a lazy * ''a lazy -> bool
 | 
						|
      val eqBy: ('a * 'a -> bool) -> 'a lazy * 'a lazy -> bool
 | 
						|
      val compare: ('a * 'a -> order) -> 'a lazy * 'a lazy -> order
 | 
						|
      val map: ('a -> 'b) -> 'a lazy -> 'b lazy
 | 
						|
 | 
						|
      structure Ops: 
 | 
						|
                   sig
 | 
						|
                      val ! : 'a lazy -> 'a (* force *)
 | 
						|
                      val ? : 'a -> 'a lazy (* inject *)
 | 
						|
                   end
 | 
						|
   end
 |