2012-06-14 28 views
13

He escrito un módulo y para ejecutar el código principal donde se importa el módulo debe tener la extensión de idioma {-# LANGUAGE OverloadedStrings #-} o la opción debe darse cuando las cosas se compilan, por supuesto.¿Es posible "ocultar" extensiones de idioma?

Si incluyo el {-# LANGUAGE OverloadedStrings #-} en el módulo, esto no sirve de nada y el usuario aún tendrá que hacer lo mismo en su código o en la compilación.

¿Hay alguna manera de que pueda hacer "algo" en el módulo real para eliminar este problema del usuario final y, por así decirlo, "ocultar" la extensión de idioma requerida?

Respuesta

13

No, su biblioteca expone características que requieren extensiones de lenguaje para ser utilizadas. Esto es algo que debe indicar en su documentación y ejemplos. No hay forma de activarlo en el código de usuario.

10

Tenga en cuenta que -XOverloadedStrings es nunca necesarios. Todo lo que hace la extensión es, en términos generales, traducir "I'm a string" a fromString "I'm a string". Sin extensiones, los usuarios siempre pueden hacer lo mismo.

Cuestiones relacionadas