title: Check type signature of inputted value and compare part of values
body: <p>If I was to use '( ) &lt;- getLine', how would I check the type signature of the value on output through a putStrLn?</p>
  
  <pre><code> numone &lt;- getLine 
  
   (show (typeOf numone))
  </code></pre>
  
  <p>When I use this it checks and prints the type signature of the word 'numone' and not what is inputted through the getLine function. Is there a workaround for this?</p>
  
  <p>Also;</p>
  
  <p>How would I compare a certain part of two inputted strings? 
  If I was to enter A12345 and A12335, I am looking for an output of "They both contain A123 at the start". So far I am using<br>
  <code>if numone == numtwo
    then<br>
      putStrLn $ "They are the same and their types are " ++ (show (typeOf numone)) ++ " and " ++ (show (typeOf numtwo))
    else
      putStrLn $ "They are not the same"</code></p>
  
  <blockquote>
    <p>The reason I wanted to be able to print what type of the inputted values were is to show wether or not the values were the same along with if they have same type. So A123 [String] is not the same as B123 [String] but as I've been told, that is simply not possible with how I want it.</p>
  </blockquote>