caramel
caramel copied to clipboard
Atom/Variant which is just underscore is a Syntax Error
Hi,
I'm trying to convert some code which uses the underscore atom: '_'
, in this case I'm trying to convert some cowboy_router code. It uses '_'
to mean match any host.
I understand that in OCaml a variant cannot be just named underscore:
; ocaml
OCaml version 4.11.1
# `_;;
Error: Syntax error
Is there a workaround? There is a pretty well-established convention in Erlang code to use the underscore atom to generally mean 'match anything'. See, cowboy_router and ets matching, for example.
I know I could try, for example, binary_to_atom
but that feels quite odd.
Dunno about Caramel per se, but this works:
$ ocaml
OCaml version 4.09.1
# `_;;
Error: Syntax error
#
`__;;
- : [> `__ ] = `__
#
@xandkar hello there :)
I'm really not versed in how the OCaml compiler is being extended or used with Caramel. Is adding an "exception" for this common Erlang use-case of arbitrary atoms to map to Variants feasible?