profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/mrkkrp/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Mark Karpov mrkkrp @tweag Paris, France https://markkarpov.com Software engineer at @tweag

commercialhaskell/stack 3601

The Haskell Tool Stack

matsievskiysv/vimish-fold 232

Vim-like text folding for Emacs

commercialhaskell/path 114

Typed filepath

libre-man/unix-opts 83

Unix-style command line options parser

mmark-md/mmark 79

Strict markdown processor for writers

mrkkrp/ace-popup-menu 66

Replace GUI popup menu in Emacs with something more efficient

mrkkrp/char-menu 21

Create a menu for fast insertion of arbitrary symbols

cbaggers/mk-string-metrics 17

Calculate various string metrics efficiently in Common Lisp (Damerau-Levenshtein, Hamming, Jaro, Jaro-Winkler, Levenshtein, etc.)

mrkkrp/avy-menu 15

An Avy-powered popup menu

mmark-md/mmark-ext 11

Commonly useful extensions for the MMark markdown processor

issue commenttweag/ormolu

Top level multi-line tuples/lists are formatted to unparseable code

The solution here would be to identify these situations and shift the closing parenthesis or brace like we already do in certain situations.

amesgen

comment created time in 7 hours

issue commenttweag/ormolu

Top level multi-line tuples/lists are formatted to unparseable code

Right, so it's mostly important in the context of region formatting.

amesgen

comment created time in 16 hours

issue commenttweag/ormolu

Top level multi-line tuples/lists are formatted to unparseable code

But what a top-level tuple or a list mean?

amesgen

comment created time in 16 hours

issue closedmrkkrp/megaparsec

Better error message when using `notFollowedBy` with parsers that don't partially consume input

notFollowedBy currently produces somewhat unintuitive error messages when used with parsers such as char, string and so on - essentially parsers that either fully fail (without consuming anything) or fully succeed (by consuming). No notion of partial consumption with later failure.

Here's an example-

> parseTest (notFollowedBy (string "ab")) "ab"
1:1:
  |
1 | ab
  | ^
unexpected 'a'

But it really should've said-

unexpected "ab"

This can be demonstrably problematic in certain cases of ambiguity, such as-

lookAhead (char '\r') *> notFollowedBy (string "\r\n")

i.e, a parser that is completely fine with a CR that follows, unless it's actually a CRLF.

> parseTest (lookAhead (char '\r') *> notFollowedBy (string "\r\n")) "\r\n"
1:1:
  |
1 |
  | ^
unexpected carriage return

(Note that I'm not asking for the error message to contain expected tokens - that should be handled by the parsers wrapping around notFollowedBy)

closed time in 2 days

TotallyNotChase

issue commentmrkkrp/megaparsec

Better error message when using `notFollowedBy` with parsers that don't partially consume input

I'm not aware of a solution other than a big refactoring or adding another version of notFollowedBy that would take Maybe String as a kind of explicit label to report.

TotallyNotChase

comment created time in 3 days

delete branch tweag/ormolu

delete branch : amesgen/stack.yaml

delete time in 3 days

push eventtweag/ormolu

amesgen

commit sha 4fb3b3b373b5b8c42bee62bdec7674882b32527f

Add stack.yaml

view details

push time in 3 days

PR merged tweag/ormolu

Add stack.yaml

Closes #776

+7 -10

0 comment

3 changed files

amesgen

pr closed time in 3 days

issue closedtweag/ormolu

Extract stack.yaml from README.md

Having it included inline means packagers need to pay attention to another source of truth. eg the AUR package linked still is using lts-15.11 because the packager forgot to pay attention.

closed time in 3 days

hseg

issue commentmrkkrp/megaparsec

Better error message when using `notFollowedBy` with parsers that don't partially consume input

A label is just another form of expected input that a parser reveals when it fails, it cannot be inspected for the same reason.

TotallyNotChase

comment created time in 3 days

issue commentmrkkrp/megaparsec

Better error message when using `notFollowedBy` with parsers that don't partially consume input

Unfortunately, notFollowedBy has no way of knowing what its argument parser expects (that would be the thing it'd declare as unexpected), because when notFollowedBy p fails, p actually succeeds. We do here the next best thing: we examine the input stream and pick the first token from there, unless the stream is empty, in which case we claim that end of input is unexpected.

TotallyNotChase

comment created time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 33b20266c918f6e1467ca4384d622ed32989b675

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 67a2f736dacf0ff0c6c73287f4f2e6fe71de6b8e

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha b4c3332d73eb8b53044706ec81244e48db869585

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 2217a2416d547beca68d5af24b88f51d9b2b0821

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha c6796805720afd992d58d874b99e0408d4208520

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 04eaa75c97c37b77181f0667e6f72756086e60c6

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 77e764871d786eece6aee43a75290992a7662086

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 0b2f88adf47bc7ecfb7c1c97f587391330e4eb11

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha dce368e28746773fc80f4d4e66a93f212d6d4de2

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 2c3c4812b2a79363c26646c1467c573dbc3d5ccc

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha a36f3bb101977417f0d8138b31c32e36f8064b62

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha f7932c023f46968991514373a8ef0ab4f84b5361

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha feb0456776d54aa9ad94d414adc7334a2ab297ec

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 96a446b61be2ef0da637c1c6a1834d8bb08ffb72

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha cd11e8670ef4bfb0b32be11049404f100b1680c9

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 7cbb0cc6359faf86cb9f257966248189a79ed8f5

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 1e87796b929347bc9a956cd50499ec37852c151b

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 05637bd9bc4f00ce71077299e252c26c7799448b

WIP

view details

push time in 3 days

push eventmrkkrp/ormolu-action

Mark Karpov

commit sha 891c84456e44a0b45b198cb48705064576f31a78

Use Ormolu 0.3.0.0

view details

push time in 3 days