├── .gitignore ├── .gitmodules ├── .travis.yml ├── Abstract.h ├── Abstract.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── Abstract-iOS.xcscheme │ ├── Abstract-tvOS.xcscheme │ ├── Abstract-watchOS.xcscheme │ └── Abstract.xcscheme ├── Cartfile.private ├── Cartfile.resolved ├── Info.plist ├── InfoTests.plist ├── Package.pins ├── Package.resolved ├── Package.swift ├── RATIONALE.md ├── README.md ├── Sources └── Abstract │ ├── Free │ ├── Array+FreeMonoid.swift │ ├── FreeSemiring │ │ └── SetM.swift │ ├── Multiset+FreeCommutativeMonoid.swift │ ├── NonEmptyArray+FreeSemigroup.swift │ └── Set+FreeBoundedSemilattice.swift │ ├── Generated │ └── WrapperEquatable.generated.swift │ ├── Morphism │ ├── Homomorphism.swift │ └── Isomorphism.swift │ ├── Protocols │ ├── BoundedSemilattice.swift │ ├── CommutativeMonoid.swift │ ├── Magma.swift │ ├── Monoid.swift │ ├── Semigroup.swift │ └── Semiring.swift │ ├── Support │ ├── Adapters.swift │ ├── Law.swift │ └── Wrapper.swift │ ├── Types │ ├── Add.swift │ ├── Algebraic │ │ ├── Coproduct.swift │ │ ├── Function.swift │ │ ├── Inclusive.swift │ │ └── Product.swift │ ├── And.swift │ ├── Bool.swift │ ├── EndoFunction.swift │ ├── First.swift │ ├── Last.swift │ ├── Max.swift │ ├── Min.swift │ ├── Multiply.swift │ ├── Optional.swift │ ├── Or.swift │ ├── Ordering.swift │ ├── String.swift │ ├── Tropical.swift │ └── Update.swift │ └── Utility │ ├── Collections.swift │ ├── Comparison.swift │ └── Predicate.swift ├── Templates ├── LinuxMain │ └── LinuxMain.stencil ├── Other │ └── Arbitrary.stencil ├── Sources │ └── WrapperEquatable.stencil └── Tests │ ├── BoundedSemilatticeTests.stencil │ ├── CommutativeMonoidTests.stencil │ ├── MonoidTests.stencil │ ├── SemigroupTests.stencil │ ├── SemiringTests.stencil │ └── WrapperTests.stencil ├── Tests ├── AbstractTests │ ├── BoundedSemilatticeTests.generated.swift │ ├── CommutativeMonoidTests.generated.swift │ ├── FunctionTests.swift │ ├── HomomorphismTests.swift │ ├── MonoidTests.generated.swift │ ├── MultisetTests.swift │ ├── NonEmptyArrayTests.swift │ ├── SemigroupTests.generated.swift │ ├── SemiringTests.generated.swift │ ├── Utility │ │ ├── Arbitrary.generated.swift │ │ └── CustomArbitraryTypes.swift │ └── WrapperTests.generated.swift └── LinuxMain.swift └── runSourcery.sh /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/.gitmodules -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/.travis.yml -------------------------------------------------------------------------------- /Abstract.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.h -------------------------------------------------------------------------------- /Abstract.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /Abstract.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Abstract.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /Abstract.xcodeproj/xcshareddata/xcschemes/Abstract-iOS.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/xcshareddata/xcschemes/Abstract-iOS.xcscheme -------------------------------------------------------------------------------- /Abstract.xcodeproj/xcshareddata/xcschemes/Abstract-tvOS.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/xcshareddata/xcschemes/Abstract-tvOS.xcscheme -------------------------------------------------------------------------------- /Abstract.xcodeproj/xcshareddata/xcschemes/Abstract-watchOS.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/xcshareddata/xcschemes/Abstract-watchOS.xcscheme -------------------------------------------------------------------------------- /Abstract.xcodeproj/xcshareddata/xcschemes/Abstract.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Abstract.xcodeproj/xcshareddata/xcschemes/Abstract.xcscheme -------------------------------------------------------------------------------- /Cartfile.private: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Cartfile.private -------------------------------------------------------------------------------- /Cartfile.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Cartfile.resolved -------------------------------------------------------------------------------- /Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Info.plist -------------------------------------------------------------------------------- /InfoTests.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/InfoTests.plist -------------------------------------------------------------------------------- /Package.pins: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Package.pins -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Package.resolved -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Package.swift -------------------------------------------------------------------------------- /RATIONALE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/RATIONALE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/README.md -------------------------------------------------------------------------------- /Sources/Abstract/Free/Array+FreeMonoid.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Free/Array+FreeMonoid.swift -------------------------------------------------------------------------------- /Sources/Abstract/Free/FreeSemiring/SetM.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Free/FreeSemiring/SetM.swift -------------------------------------------------------------------------------- /Sources/Abstract/Free/Multiset+FreeCommutativeMonoid.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Free/Multiset+FreeCommutativeMonoid.swift -------------------------------------------------------------------------------- /Sources/Abstract/Free/NonEmptyArray+FreeSemigroup.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Free/NonEmptyArray+FreeSemigroup.swift -------------------------------------------------------------------------------- /Sources/Abstract/Free/Set+FreeBoundedSemilattice.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Free/Set+FreeBoundedSemilattice.swift -------------------------------------------------------------------------------- /Sources/Abstract/Generated/WrapperEquatable.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Generated/WrapperEquatable.generated.swift -------------------------------------------------------------------------------- /Sources/Abstract/Morphism/Homomorphism.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Morphism/Homomorphism.swift -------------------------------------------------------------------------------- /Sources/Abstract/Morphism/Isomorphism.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Morphism/Isomorphism.swift -------------------------------------------------------------------------------- /Sources/Abstract/Protocols/BoundedSemilattice.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Protocols/BoundedSemilattice.swift -------------------------------------------------------------------------------- /Sources/Abstract/Protocols/CommutativeMonoid.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Protocols/CommutativeMonoid.swift -------------------------------------------------------------------------------- /Sources/Abstract/Protocols/Magma.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Protocols/Magma.swift -------------------------------------------------------------------------------- /Sources/Abstract/Protocols/Monoid.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Protocols/Monoid.swift -------------------------------------------------------------------------------- /Sources/Abstract/Protocols/Semigroup.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Protocols/Semigroup.swift -------------------------------------------------------------------------------- /Sources/Abstract/Protocols/Semiring.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Protocols/Semiring.swift -------------------------------------------------------------------------------- /Sources/Abstract/Support/Adapters.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Support/Adapters.swift -------------------------------------------------------------------------------- /Sources/Abstract/Support/Law.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Support/Law.swift -------------------------------------------------------------------------------- /Sources/Abstract/Support/Wrapper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Support/Wrapper.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Add.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Add.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Algebraic/Coproduct.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Algebraic/Coproduct.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Algebraic/Function.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Algebraic/Function.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Algebraic/Inclusive.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Algebraic/Inclusive.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Algebraic/Product.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Algebraic/Product.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/And.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/And.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Bool.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Bool.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/EndoFunction.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/EndoFunction.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/First.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/First.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Last.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Last.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Max.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Max.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Min.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Min.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Multiply.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Multiply.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Optional.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Optional.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Or.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Or.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Ordering.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Ordering.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/String.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/String.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Tropical.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Tropical.swift -------------------------------------------------------------------------------- /Sources/Abstract/Types/Update.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Types/Update.swift -------------------------------------------------------------------------------- /Sources/Abstract/Utility/Collections.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Utility/Collections.swift -------------------------------------------------------------------------------- /Sources/Abstract/Utility/Comparison.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Utility/Comparison.swift -------------------------------------------------------------------------------- /Sources/Abstract/Utility/Predicate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Sources/Abstract/Utility/Predicate.swift -------------------------------------------------------------------------------- /Templates/LinuxMain/LinuxMain.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/LinuxMain/LinuxMain.stencil -------------------------------------------------------------------------------- /Templates/Other/Arbitrary.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Other/Arbitrary.stencil -------------------------------------------------------------------------------- /Templates/Sources/WrapperEquatable.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Sources/WrapperEquatable.stencil -------------------------------------------------------------------------------- /Templates/Tests/BoundedSemilatticeTests.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Tests/BoundedSemilatticeTests.stencil -------------------------------------------------------------------------------- /Templates/Tests/CommutativeMonoidTests.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Tests/CommutativeMonoidTests.stencil -------------------------------------------------------------------------------- /Templates/Tests/MonoidTests.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Tests/MonoidTests.stencil -------------------------------------------------------------------------------- /Templates/Tests/SemigroupTests.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Tests/SemigroupTests.stencil -------------------------------------------------------------------------------- /Templates/Tests/SemiringTests.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Tests/SemiringTests.stencil -------------------------------------------------------------------------------- /Templates/Tests/WrapperTests.stencil: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Templates/Tests/WrapperTests.stencil -------------------------------------------------------------------------------- /Tests/AbstractTests/BoundedSemilatticeTests.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/BoundedSemilatticeTests.generated.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/CommutativeMonoidTests.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/CommutativeMonoidTests.generated.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/FunctionTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/FunctionTests.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/HomomorphismTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/HomomorphismTests.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/MonoidTests.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/MonoidTests.generated.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/MultisetTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/MultisetTests.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/NonEmptyArrayTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/NonEmptyArrayTests.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/SemigroupTests.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/SemigroupTests.generated.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/SemiringTests.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/SemiringTests.generated.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/Utility/Arbitrary.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/Utility/Arbitrary.generated.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/Utility/CustomArbitraryTypes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/Utility/CustomArbitraryTypes.swift -------------------------------------------------------------------------------- /Tests/AbstractTests/WrapperTests.generated.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/AbstractTests/WrapperTests.generated.swift -------------------------------------------------------------------------------- /Tests/LinuxMain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/Tests/LinuxMain.swift -------------------------------------------------------------------------------- /runSourcery.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/typelift/Abstract/HEAD/runSourcery.sh --------------------------------------------------------------------------------