title: Do algebraic datatypes in Haskell equal discriminated unions in F#?
body: <p>I am learning Haskell and would like to know whether the constructs known in Haskell as algebraic datatypes are the same that discriminated unions in F# or there are some subtle differences between them.</p>
  
  <p>I would also appreciate much a good comparison between F# (my first functional language) and other functional languages, especially as regards similar concepts but with substantial but important differences.</p>