2017-09-20 11 views
1

J'essaye de programmer en utilisant la bibliothèque standard Core de Jane Street et l'interface de langage Reason.L'attribut 'explicit_arity' n'a pas été utilisé

J'ai donc pris le script corebuild et enregistré une copie en tant que recorebuild en remplaçant ocamlbuild par rebuild. Mais j'ai des problèmes avec un code simple.

Ceci est l'exemple minimal qui échoue:

type t = Foo int | Bar; 

let foobar f => switch f { 
| Foo x => x 
| Bar => 0 
}; 

Si vous essayez de le compiler avec l'option suivante, l'un des nombreux ajouté par corebuild:

rebuild -tag "ppx(ppx-jane -as-ppx)" test.byte 

alors vous obtenez cette erreur :

File "", line 0: 
Attribute `explicit_arity' was not used 
Command exited with code 2. 

Qu'est-ce que cela signifie?

+0

Je suis intéressé à utiliser Core Jane Street à raison aussi. Connaissez-vous un doc/tutoriel/blog expliquant comment faire cela? – hendysg

Répondre

0

explicit_arity est un attribut émis par refmt pour résoudre une ambiguïté dans la syntaxe OCaml concernant les variantes. Malheureusement, il est en conflit avec un Jane St ppx, mais cela devrait fonctionner si vous supprimez -tag "ppx(ppx-jane -as-ppx)" du script corebuild.

(Note: Cette information est tirée de la raison Discorde, je n'ai personnellement aucune expérience avec ce)

+0

Pouvez-vous lier à l'endroit qui le mentionne? Google n'a pas beaucoup tourné. – Tobia

+0

Je n'ai aucun lien, j'ai peur. Mais si vous sautez sur le Discord Discord, https://discord.gg/reasonml (aucune inscription requise), vous pouvez le rechercher. – glennsl

+0

En fait, je pense que c'est le problème qui l'a introduit. A beaucoup de discussion si: https://github.com/facebook/reason/issues/63 – glennsl