Idris 指定解释范围以将十进制字符串解释为Nat

Idris 指定解释范围以将十进制字符串解释为Nat,idris,Idris,有没有办法告诉IDRI将十进制字符串(如2、10等)解释为Nat?repl中的默认行为是将它们解释为Integer。例如,在Coq中,可以使用%指定解释范围来消除符号歧义,因此我想我希望存在类似10%Nat的东西。《伊德里斯》中有类似的内容吗?标准前奏曲包含 the : (a : Type) -> (value: a) -> a the _ = id 可用于提供显式类型的: the Integer 10 the Nat 6 the (Vect 3 Int) [1,2,3] 还有一

有没有办法告诉IDRI将十进制字符串(如
2
10
等)解释为
Nat
?repl中的默认行为是将它们解释为
Integer
。例如,在Coq中,可以使用
%
指定解释范围来消除符号歧义,因此我想我希望存在类似
10%Nat
的东西。《伊德里斯》中有类似的内容吗?

标准前奏曲包含

the : (a : Type) -> (value: a) -> a
the _ = id
可用于提供显式类型的:

the Integer 10
the Nat 6
the (Vect 3 Int) [1,2,3]
还有一个带有[namespace][expr]的
,它在
expr
中具有
名称空间
的特权。这似乎更接近
%
,但
似乎更常用

with Vect [['a', 'b']] -- Vect 1 (Vect 2 Char)
with List [['a', 'b']] -- List (List Char)
您可以对
进行语法扩展:

syntax [expr] "%" [type] = the type expr
5%Nat
10%Int
但不适用于带