Skip to content

Instantly share code, notes, and snippets.

@livecode-bot
livecode-bot / ex1
Created February 16, 2019 16:32
io.livecode.ch/learn/namin/unsound
object unsoundMini extends App {
trait A { type L >: Any}
def upcast(a: A, x: Any): a.L = x
val p: A { type L <: Nothing } = null
def coerce(x: Any): Nothing = upcast(p, x)
coerce("Uh oh!")
}
@livecode-bot
livecode-bot / ex1
Created February 16, 2019 16:45
io.livecode.ch/learn/namin/unsound
class UnsoundSpec {
static class Constrain<A, B extends A> {}
static <A,B extends A>
A upcast(Constrain<A,B> constrain, B b) {
return b;
}
static <T,U> U coerce(T t) {
Constrain<U,? super T> constrain = null;
return upcast(constrain, t);
}
@livecode-bot
livecode-bot / anyo
Created February 17, 2019 15:43
io.livecode.ch/learn/webyrd/webmk
(define anyo
(lambda (g)
(conde
(g)
((anyo g)))))
@livecode-bot
livecode-bot / editor
Created February 21, 2019 23:49
io.livecode.ch/learn/webyrd/Barliman
(define ,A
(lambda (xs ys)
,C))
@livecode-bot
livecode-bot / ex1
Created February 22, 2019 19:20
io.livecode.ch/learn/namin/unsound
class Unsound {
static class Constrain<A, B extends A> {}
static class Bind<A> {
<B extends A>
A upcast(Constrain<A,B> constrain, B b) {
return b;
}
}
static <T,U> U coerce(T t) {
Constrain<U,? super T> constrain = null;
@livecode-bot
livecode-bot / ex1
Created February 22, 2019 19:22
io.livecode.ch/learn/namin/unsound
class Unsound {
static class Constrain<A, B extends A> {}
static class Bind<A> {
<B extends A>
A upcast(Constrain<A,B> constrain, B b) {
return b;
}
}
static <T,U> U coerce(T t) {
Constrain<U,? super T> constrain = null;
@livecode-bot
livecode-bot / ex1
Created February 22, 2019 19:23
io.livecode.ch/learn/namin/unsound
class Unsound9<U,T> {
static class Type<A> {
class Constraint<B extends A> extends Type<B> {}
<B> Constraint<? super B> bad() { return null; }
<B> A coerce(B b) {
return pair(this.<B>bad(), b).value;
}
}
static class DependentSum<T> {
Type<T> type;
@livecode-bot
livecode-bot / ex1
Created February 22, 2019 21:12
io.livecode.ch/learn/namin/unsound
class UnsoundSpec {
static class Constrain<A, B extends A> {}
static <A,B extends A>
A upcast(Constrain<A,B> constrain, B b) {
return b;
}
static <T,U> U coerce(T t) {
Constrain<U,? super T> constrain = null;
return upcast(constrain, t);
}
@livecode-bot
livecode-bot / ex1
Created February 22, 2019 21:13
io.livecode.ch/learn/namin/unsound
class UnsoundSpec {
static class Constrain<A, B extends A> {}
static <A,B extends A>
A upcast(Constrain<A,B> constrain, B b) {
return b;
}
static <T,U> U coerce(T t) {
Constrain<U,? super T> constrain = null;
return upcast(constrain, t);
}
@livecode-bot
livecode-bot / ex1
Created February 22, 2019 21:56
io.livecode.ch/learn/namin/unsound
class Unsound {
static class Constrain<A, B extends A> {}
static class Bind<A> {
<B extends A>
A upcast(Constrain<A,B> constrain, B b) {
return b;
}
}
static <T,U> U coerce(T t) {
Constrain<U,? super T> constrain = null;