├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── TODO.md ├── macros └── src │ └── main │ └── scala │ └── leibniz │ └── macros │ └── NewType.scala ├── project ├── build.properties └── plugins.sbt └── src ├── main ├── java │ └── leibniz │ │ └── internal │ │ └── Murmur3.java └── scala │ └── leibniz │ ├── Apart.scala │ ├── As.scala │ ├── As1.scala │ ├── Axioms.scala │ ├── Bounded.scala │ ├── Comparable.scala │ ├── Cosingleton.scala │ ├── Eq.scala │ ├── Forall.scala │ ├── FunctionK.scala │ ├── ImmArray.scala │ ├── Implies.scala │ ├── Incomparable.scala │ ├── Is.scala │ ├── IsF.scala │ ├── IsK.scala │ ├── Iso.scala │ ├── IsoK.scala │ ├── Leibniz.scala │ ├── Liskov.scala │ ├── Liskov1.scala │ ├── Liskov2.scala │ ├── Parametric.scala │ ├── Pi.scala │ ├── Sigma.scala │ ├── Squash.scala │ ├── StrictAs.scala │ ├── Subset.scala │ ├── TypeHolder.scala │ ├── TypeId.scala │ ├── Void.scala │ ├── WeakApart.scala │ ├── inhabitance │ ├── Contractible.scala │ ├── Inhabited.scala │ ├── InhabitedSubset.scala │ ├── PartiallyInhabited.scala │ ├── Proposition.scala │ ├── SingletonOf.scala │ ├── TotallyInhabited.scala │ ├── TotallyUninhabited.scala │ ├── Uninhabited.scala │ └── WeakProposition.scala │ ├── internal │ ├── IllTyped.scala │ ├── ImplicationMacro.scala │ ├── MacroUtil.scala │ └── Unsafe.scala │ ├── package.scala │ └── variance │ ├── Constant.scala │ ├── Contravariant.scala │ ├── Covariant.scala │ ├── Injective.scala │ ├── Invariant.scala │ ├── StrictlyContravariant.scala │ └── StrictlyCovariant.scala └── test └── scala ├── Derivation.scala ├── EqTest.scala ├── Fin.scala ├── Kind.scala ├── MuRef.scala ├── Nat.scala └── VectTest.scala /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/README.md -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/TODO.md -------------------------------------------------------------------------------- /macros/src/main/scala/leibniz/macros/NewType.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/macros/src/main/scala/leibniz/macros/NewType.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=1.2.1 2 | -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/project/plugins.sbt -------------------------------------------------------------------------------- /src/main/java/leibniz/internal/Murmur3.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/java/leibniz/internal/Murmur3.java -------------------------------------------------------------------------------- /src/main/scala/leibniz/Apart.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Apart.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/As.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/As.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/As1.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/As1.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Axioms.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Axioms.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Bounded.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Bounded.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Comparable.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Comparable.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Cosingleton.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Cosingleton.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Eq.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Eq.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Forall.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Forall.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/FunctionK.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/FunctionK.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/ImmArray.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/ImmArray.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Implies.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Implies.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Incomparable.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Incomparable.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Is.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Is.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/IsF.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/IsF.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/IsK.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/IsK.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Iso.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Iso.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/IsoK.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/IsoK.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Leibniz.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Leibniz.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Liskov.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Liskov.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Liskov1.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Liskov1.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Liskov2.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Liskov2.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Parametric.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Parametric.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Pi.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Pi.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Sigma.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Sigma.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Squash.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Squash.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/StrictAs.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/StrictAs.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Subset.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Subset.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/TypeHolder.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/TypeHolder.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/TypeId.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/TypeId.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/Void.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/Void.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/WeakApart.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/WeakApart.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/Contractible.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/Contractible.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/Inhabited.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/Inhabited.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/InhabitedSubset.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/InhabitedSubset.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/PartiallyInhabited.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/PartiallyInhabited.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/Proposition.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/Proposition.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/SingletonOf.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/SingletonOf.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/TotallyInhabited.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/TotallyInhabited.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/TotallyUninhabited.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/TotallyUninhabited.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/Uninhabited.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/Uninhabited.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/inhabitance/WeakProposition.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/inhabitance/WeakProposition.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/internal/IllTyped.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/internal/IllTyped.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/internal/ImplicationMacro.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/internal/ImplicationMacro.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/internal/MacroUtil.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/internal/MacroUtil.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/internal/Unsafe.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/internal/Unsafe.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/package.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/package.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/Constant.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/Constant.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/Contravariant.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/Contravariant.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/Covariant.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/Covariant.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/Injective.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/Injective.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/Invariant.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/Invariant.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/StrictlyContravariant.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/StrictlyContravariant.scala -------------------------------------------------------------------------------- /src/main/scala/leibniz/variance/StrictlyCovariant.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/main/scala/leibniz/variance/StrictlyCovariant.scala -------------------------------------------------------------------------------- /src/test/scala/Derivation.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/Derivation.scala -------------------------------------------------------------------------------- /src/test/scala/EqTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/EqTest.scala -------------------------------------------------------------------------------- /src/test/scala/Fin.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/Fin.scala -------------------------------------------------------------------------------- /src/test/scala/Kind.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/Kind.scala -------------------------------------------------------------------------------- /src/test/scala/MuRef.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/MuRef.scala -------------------------------------------------------------------------------- /src/test/scala/Nat.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/Nat.scala -------------------------------------------------------------------------------- /src/test/scala/VectTest.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sir-wabbit/leibniz/HEAD/src/test/scala/VectTest.scala --------------------------------------------------------------------------------