juan_gandhi: (VP)
2014-10-29 01:01 pm
Entry tags:

some new code

  val _1:Unit = ()
  val _0: Nothing = ???

  case object None extends Maybe[Nothing] {
    override def ¬ : Maybe[Nothing] = Just(_0)
...
juan_gandhi: (VP)
2014-10-25 12:28 pm
Entry tags:

figuring out...

So, I kind of discovered that the stuff I'm doing with my Result class looks suspiciously close to linear logic, e.g., in LL we have !(A&B)≡!A⊗!B, and I have Good(a) <*> Good(b) == Good((a,b)).

Moving on.

Similarly, there's some connection between Good[Either[A,B]] and Good(a:A) orElse Good(b:B).

Actually, what I have, it seems to be a coaffine logic, but well, who cares right now. We will see.

"If Γ,Δ⊢Θ, then Γ,!A,Δ⊢Θ, for any A " maps to

Good(a) foreach (f()) is the same as f().

"If Γ,!A,!A,Δ⊢Θ, then Γ,!A,Δ⊢Θ" maps to
Good(Good(a)).flatten == Good(a)

Not everything works. But is not it weird.
juan_gandhi: (VP)
2014-10-24 10:29 pm
Entry tags:

problems with linear order in a language that supports linear logic

Screen Shot 2014-10-24 at 10.27.52 PM

(that's Rust)
(and I wonder where's linear logic there)