Improve independency of module Value
Use polymorphic variants in Value module