├── .gitignore ├── LICENSE ├── RAPPORT.md ├── README.md ├── UML └── overview.puml ├── pom.xml └── src ├── main └── java │ ├── app │ ├── InferenceApp.java │ └── Main.java │ ├── ast │ ├── Application.java │ ├── Expression.java │ ├── Lambda.java │ ├── Let.java │ ├── Literal.java │ ├── Variable.java │ └── lit │ │ ├── Bool.java │ │ └── Int.java │ ├── exceptions │ ├── InfiniteTypeException.java │ ├── UnboundVariableException.java │ └── UnificationFailException.java │ ├── inference │ ├── Constraint.java │ ├── Substitution.java │ ├── environements │ │ ├── TypeEnv.java │ │ ├── TypeGenerator.java │ │ └── TypeInferenceEnv.java │ └── interfaces │ │ ├── Inferable.java │ │ ├── Substitutable.java │ │ └── Unifyable.java │ └── types │ ├── Scheme.java │ ├── TConstructor.java │ ├── TFunction.java │ ├── TVariable.java │ └── Type.java └── test └── java ├── ast ├── ApplicationTest.java ├── ExpressionTest.java ├── LambdaTest.java ├── LetTest.java └── VariableTest.java ├── inference ├── SchemeTest.java ├── TypeEnvTest.java └── TypeGeneratorTest.java └── types ├── TConstructorTest.java ├── TFunctionTest.java └── TVariableTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/LICENSE -------------------------------------------------------------------------------- /RAPPORT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/RAPPORT.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/README.md -------------------------------------------------------------------------------- /UML/overview.puml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/UML/overview.puml -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/app/InferenceApp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/app/InferenceApp.java -------------------------------------------------------------------------------- /src/main/java/app/Main.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/app/Main.java -------------------------------------------------------------------------------- /src/main/java/ast/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/Application.java -------------------------------------------------------------------------------- /src/main/java/ast/Expression.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/Expression.java -------------------------------------------------------------------------------- /src/main/java/ast/Lambda.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/Lambda.java -------------------------------------------------------------------------------- /src/main/java/ast/Let.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/Let.java -------------------------------------------------------------------------------- /src/main/java/ast/Literal.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/Literal.java -------------------------------------------------------------------------------- /src/main/java/ast/Variable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/Variable.java -------------------------------------------------------------------------------- /src/main/java/ast/lit/Bool.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/lit/Bool.java -------------------------------------------------------------------------------- /src/main/java/ast/lit/Int.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/ast/lit/Int.java -------------------------------------------------------------------------------- /src/main/java/exceptions/InfiniteTypeException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/exceptions/InfiniteTypeException.java -------------------------------------------------------------------------------- /src/main/java/exceptions/UnboundVariableException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/exceptions/UnboundVariableException.java -------------------------------------------------------------------------------- /src/main/java/exceptions/UnificationFailException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/exceptions/UnificationFailException.java -------------------------------------------------------------------------------- /src/main/java/inference/Constraint.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/Constraint.java -------------------------------------------------------------------------------- /src/main/java/inference/Substitution.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/Substitution.java -------------------------------------------------------------------------------- /src/main/java/inference/environements/TypeEnv.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/environements/TypeEnv.java -------------------------------------------------------------------------------- /src/main/java/inference/environements/TypeGenerator.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/environements/TypeGenerator.java -------------------------------------------------------------------------------- /src/main/java/inference/environements/TypeInferenceEnv.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/environements/TypeInferenceEnv.java -------------------------------------------------------------------------------- /src/main/java/inference/interfaces/Inferable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/interfaces/Inferable.java -------------------------------------------------------------------------------- /src/main/java/inference/interfaces/Substitutable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/interfaces/Substitutable.java -------------------------------------------------------------------------------- /src/main/java/inference/interfaces/Unifyable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/inference/interfaces/Unifyable.java -------------------------------------------------------------------------------- /src/main/java/types/Scheme.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/types/Scheme.java -------------------------------------------------------------------------------- /src/main/java/types/TConstructor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/types/TConstructor.java -------------------------------------------------------------------------------- /src/main/java/types/TFunction.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/types/TFunction.java -------------------------------------------------------------------------------- /src/main/java/types/TVariable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/types/TVariable.java -------------------------------------------------------------------------------- /src/main/java/types/Type.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/main/java/types/Type.java -------------------------------------------------------------------------------- /src/test/java/ast/ApplicationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/ast/ApplicationTest.java -------------------------------------------------------------------------------- /src/test/java/ast/ExpressionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/ast/ExpressionTest.java -------------------------------------------------------------------------------- /src/test/java/ast/LambdaTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/ast/LambdaTest.java -------------------------------------------------------------------------------- /src/test/java/ast/LetTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/ast/LetTest.java -------------------------------------------------------------------------------- /src/test/java/ast/VariableTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/ast/VariableTest.java -------------------------------------------------------------------------------- /src/test/java/inference/SchemeTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/inference/SchemeTest.java -------------------------------------------------------------------------------- /src/test/java/inference/TypeEnvTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/inference/TypeEnvTest.java -------------------------------------------------------------------------------- /src/test/java/inference/TypeGeneratorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/inference/TypeGeneratorTest.java -------------------------------------------------------------------------------- /src/test/java/types/TConstructorTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/types/TConstructorTest.java -------------------------------------------------------------------------------- /src/test/java/types/TFunctionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/types/TFunctionTest.java -------------------------------------------------------------------------------- /src/test/java/types/TVariableTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maeln/LambdaHindleyMilner/HEAD/src/test/java/types/TVariableTest.java --------------------------------------------------------------------------------