Scala compiler plugin for custom type constrains