| 
					
				 | 
			
			
				@@ -1,8 +1,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import {Book, Logger as DamageLogger, Librarian} from './interfaces'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import {Category} from './enums'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import {ReferenceItem, UniversityLibrarian} from './classes'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import {Journal, ReferenceItem, UniversityLibrarian} from './classes'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { CalculateLateFees as CalcFee, MaxBooksAllowed }  from './lib/utilityfunctions'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import refBook from './encyclopedia'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { LogAndReturn }from './generics'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export function GetAllBooks(): Book[] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const books = [ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,6 +201,21 @@ function importDemo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   console.log(ref); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function genericFunctionDemo() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  LogAndReturn(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  LogAndReturn(42); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  LogAndReturn({ a: []}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  interface Magazine { title: string } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let someString: string = LogAndReturn<string>('log this'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log("Returned: ", someString); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let newMag: Magazine = { title: 'Web dev monthly' }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  let someMag: Magazine = LogAndReturn<Magazine>(newMag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log('Returned mag', someMag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 false && bookDemo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 false && classDemo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 false && importDemo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+genericFunctionDemo(); 
			 |