## More detailed differences between Scheme, OCaml, and Haskell ##
Here is comparison of the syntax for declaring types in Haskell and OCaml:
-- Haskell
data Pretty a b = Lovely a | Cute b ClothingModule.ButtonType
newtype Pretty a b = Pretty a b Int
newtype Pretty a b = Pretty { unPretty a }
type Pretty a b = (a, b)
(* OCaml *)
type ('a,'b) pretty = Lovely of 'a | Cute of 'b * ClothingModule.ButtonType
type ('a,'b) pretty = Pretty of 'a * 'b * int
type ('a,'b) pretty = Pretty of 'a
type ('a,'b) pretty = 'a * 'b
*Will explain later, and add more material.*
Until we do, have a look at our [page on translating between OCaml Scheme and Haskell](http://lambda1.jimpryor.net/translating_between_OCaml_Scheme_and_Haskell) from the first time we offered this seminar.