scala type-level scalaz dependent types compiler shapeless prolog functional programming
See more