extractUnquotes n (PLet fc rc name nfc ty val body)
  = do (ty', ex1) <- extractUnquotes n ty
       (val', ex2) <- extractUnquotes n val
       (body', ex3) <- extractUnquotes n body
       return (PLet fc rc name nfc ty' val' body', ex1 ++ ex2 ++ ex3)
extractUnquotes n (PLet fc rc name nfc ty val body)
  = do (ty', ex1) <- extractUnquotes n ty
       (val', ex2) <- extractUnquotes n val
       (body', ex3) <- extractUnquotes n body
       return (PLet fc rc name nfc ty' val' body', ex1 ++ ex2 ++ ex3)
extractUnquotes n (PLet fc rc name nfc ty val body)
  = do (ty', ex1) <- extractUnquotes n ty
       (val', ex2) <- extractUnquotes n val
       (body', ex3) <- extractUnquotes n body
       return (PLet fc rc name nfc ty' val' body', ex1 ++ ex2 ++ ex3)