Because we have too few solutions
| Library | Docs | Types | Integrations | Notes |
|---|---|---|---|---|
| built-in | official | AnyVal extended by class with a single value |
many libraries support AnyVals |
- Scala 2/3, but on 3 it has a replacement |
| # Run each recipe in a single bash shell | |
| set shell := ["bash", "-euo", "pipefail", "-c"] | |
| # Set environment variables | |
| set export | |
| BUILD_DIR := `pwd` | |
| ARCH := `uname -m` | |
| STRAWBERRY_OPT_DIR := BUILD_DIR + "/opt/strawberry_macos_" + ARCH + "_release" | |
| PKG_CONFIG_PATH := STRAWBERRY_OPT_DIR + "/lib/pkgconfig" |
Because we have too few solutions
| Library | Docs | Types | Integrations | Notes |
|---|---|---|---|---|
| built-in | official | AnyVal extended by class with a single value |
many libraries support AnyVals |
- Scala 2/3, but on 3 it has a replacement |
| // | |
| // @author: Mateusz Kubuszok | |
| // | |
| // requirements: ammonite 1.1.0 | |
| // usage: run `amm` and copy paste into REPL | |
| import $ivy.`org.typelevel::cats-core:1.3.1`, cats._, cats.syntax.all._ | |
| import $ivy.`org.typelevel::cats-effect:1.0.0`, cats.effect._, cats.effect.syntax._ | |
| import $ivy.`io.circe::circe-core:0.9.3`, io.circe._, io.circe.syntax._ | |
| import $ivy.`io.circe::circe-generic:0.9.3`, io.circe.generic.auto._ |
| # Open window/pane in the same PATH | |
| bind c new-window -c "#{pane_current_path}" | |
| bind '"' split-window -c "#{pane_current_path}" | |
| bind % split-window -h -c "#{pane_current_path}" | |
| # Reload config | |
| bind R source-file ~/.tmux.conf \; display-message "Config reloaded..." | |
| # Window tab menu | |
| bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S \ | |
| "Swap Left" l "swap-window -t:-1" \ |
| #!/bin/bash | |
| defaultURL='https://github.com/ledgersmb/LedgerSMB' | |
| defaultFILE='' | |
| HELP() { | |
| cat <<-EOF | |
| usage: github-badge-cache-buster.sh [ -h | --help | [ repoURL | "auto" [ badgeFile ] ] ] | |
| repoURL defaults to '$defaultURL' |
| # Open window/pane in the same PATH | |
| bind c new-window -c "#{pane_current_path}" | |
| bind '"' split-window -c "#{pane_current_path}" | |
| bind % split-window -h -c "#{pane_current_path}" | |
| # Reload config | |
| bind R source-file ~/.tmux.conf \; display-message "Config reloaded..." | |
| # Window tab menu | |
| bind-key -T root MouseDown3Status display-menu -T "#[align=centre]#{window_index}:#{window_name}" -t = -x W -y S \ | |
| "Swap Left" l "swap-window -t:-1" \ |
Directly solves:
Currently Chimney attempts to derive as much as possible with a single expression. It inline results on Scala 2 it uses an approach where when implicit is summoned it is expected that only user-provided implicit would be used. This is done because:
Actually, more like hall of shame because I cannot watch/listen to myself without cringe, but in this time and age everyone has to be a salesman. Well, not really, but it kind of help with self-development and getting confidence, so whatever. Remember kids! You don't have to be competent to be a public speaker! (Or write a book. Or blog. Or OSS. Or get a job.)
| type ~>[F[_], G[_]] = [A] => F[A] => G[A] | |
| final case class <~>[F[_], G[_]](to: F ~> G, from: G ~> F): | |
| val mapAsTo: [A, B] => (G[A] => G[B]) => (F[A] => F[B]) = | |
| [A, B] => (f: (G[A] => G[B])) => to[A].andThen(f).andThen(from[B]) | |
| val mapAsFrom: [A, B] => (F[A] => F[B]) => (G[A] => G[B]) = | |
| [A, B] => (f: (F[A] => F[B])) => from[A].andThen(f).andThen(to[B]) | |
| extension [F[_], A](fa: F[A]) | |
| transparent inline def mapAs[G[_]]: [B] => (G[A] => G[B]) => F[B] = |
| #!/bin/bash | |
| brew bundle dump --file Brewfile | |
| /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" | |
| /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
| brew bundle install |