Ast.ScopeDefInside a scope, a definition can refer to a variable (possibly an intermediate state thereof) or an input of a subscope.
type kind = | Var of Shared_ast.StateName.t option| SubScopeInput of {name : Shared_ast.ScopeName.t;var_within_origin_scope : Shared_ast.ScopeVar.t;}val format_kind : Stdlib.Format.formatter -> kind -> unitval hash_kind : 
  strip:Catala_utils.Uid.Module.t option ->
  kind ->
  Catala_utils.Hash.ttype t = Shared_ast.ScopeVar.t Catala_utils.Mark.pos * kindval get_position : t -> Catala_utils.Pos.tval format : Stdlib.Format.formatter -> t -> unitval hash : strip:Catala_utils.Uid.Module.t option -> t -> Catala_utils.Hash.tmodule Map : Catala_utils.Map.S with type key = t