Given the following functions, show a type reconstruction for their variables (note in the 2nd function, I am using a combination syntax the list deconstruction syntax from Prolog and the procedural way to write a function. here so this is an imaginary PL example). 1. abss(X) = { if (X < 0) then return -X else return X} This is the same function written in Scheme: (define (abss x) (if (< x 0) (- 0 x) x)) 2. app([X|Y], L2) = { if ([X|Y] = [] ) then return L2 else {L= app(Y,L2), return [X|L]}} This is the same function written in Scheme: (define (app L1 L2) (if (null? L1) L2 (cons (car L1) (app (cdr L1) L2))))