Functional design by contract (DBC) for Scala