We used to have something like this and it was used by the C semantics for
doing char-level I/O access.

The idea was that if one tries to read a string from a stream cell, they
would get a token;  if they ask for a Char, they would get the next
character.

  Not sure whether it still works, though.



2014-05-27 18:22 GMT+03:00 dwightguth <notifications@github.com>:

> In include/io/io.k:
>
> >    rule ListItem(#buffer(Buffer:String => Buffer +String Float2String(F)))
> >         (ListItem(F:Float) => .List)
> >         _:List [stdout, stderr]
> >    rule ListItem(#buffer(Buffer:String => Buffer +String Int2String(I)))
> >         (ListItem(I:Int) => .List)
> >         _:List [stdout, stderr]
> > +  rule ListItem(#buffer(Buffer:String => Buffer +String Char2String(C)))
>
> Do we even *have* a Char sort?
>
> —
> Reply to this email directly or view it on GitHub<https://github.com/kframework/k/pull/501/files#r13083308>
> .
>