 	}
 
 	public let dependencies: [Module]
-	public let definitions: [Binding<Recur>]
+	public let declarations: [Binding<Recur>]
 
 	public var environment: Environment {
 		let dependencies = lazy(self.dependencies).map { $0.environment }
-		let definitions = lazy(self.definitions).map { [$0.symbol: $0.value] }
+		let definitions = lazy(self.declarations).map { [$0.symbol: $0.value] }
 		return dependencies
 			.concat(definitions)
 			.reduce(Environment(), combine: +)


	public var context: Context {
		let dependencies = lazy(self.dependencies).map { $0.context }
		let definitions = lazy(self.definitions).map { [$0.symbol: $0.type] }
		return dependencies
			.concat(definitions)
			.reduce(Context(), combine: +)

	public func typecheck() -> [Error] {
		let environment = self.environment
		let context = self.context
		return lazy(declarations)
			.map { $0.typecheck(environment, context) }
			.reduce([]) { $0 + ($1.left.map { [ $0 ] } ?? []) }
	}
