caramel icon indicating copy to clipboard operation
caramel copied to clipboard

Atom/Variant which is just underscore is a Syntax Error

Open AeroNotix opened this issue 3 years ago • 2 comments

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.

AeroNotix avatar Apr 18 '21 17:04 AeroNotix

Dunno about Caramel per se, but this works:

$ ocaml
        OCaml version 4.09.1

# `_;;
Error: Syntax error
#
  `__;;
- : [> `__ ] = `__
#

xandkar avatar May 25 '21 19:05 xandkar

@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?

AeroNotix avatar May 25 '21 20:05 AeroNotix