Skip to content

Instantly share code, notes, and snippets.

@kennetpostigo
Created June 23, 2018 00:51
Show Gist options
  • Save kennetpostigo/75fe608f737178010259ae6bb4df6d4f to your computer and use it in GitHub Desktop.
Save kennetpostigo/75fe608f737178010259ae6bb4df6d4f to your computer and use it in GitHub Desktop.
Reason Phantom Type Animal catch all usage
/* Link to playground: https://bit.ly/2J7t1bR */
let larry = Animal.makeDog("Larry");
let larsa = Animal.makeDog("Larsa");
let mark = Animal.makeCat("Mark");
let marla = Animal.makeCat("Marla");
/* ✅ Mates 2 dogs and then mates 2 cats*/
Js.log(Animal.mate(larry, larsa));
Js.log(Animal.mate(mark, marla));
/* ✅ Mates 1 dog and 1 cats and then 2 cats*/
Js.log(Animal.interMate(larry, marla));
Js.log(Animal.interMate(mark, marla));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment