Skip to content

Instantly share code, notes, and snippets.

@jordwalke
Created August 12, 2015 06:41
Show Gist options
  • Save jordwalke/83518e6665b631633aa5 to your computer and use it in GitHub Desktop.
Save jordwalke/83518e6665b631633aa5 to your computer and use it in GitHub Desktop.
Existential Types Recovering
type printable = Printable : 'a * ('a-> string) -> printable;;
let myList = [Printable (2, string_of_int); Printable (true, string_of_bool)];;
let printPrintable: printable -> string = fun p ->
let Printable (data, printer) = p in
printer data
;;
let printables = [Printable (2, string_of_int); Printable (true, string_of_bool)];;
let results = List.map printPrintable printables;;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment