我正在尝试使用IdrisNet2库来定义一些二进制数据结构。我正在使用 Idris 0.9.17.1 并提交 IdrisNet2 的 262b746c9a2405e43d1de6a48de44cac2fd19932。我正在定义一个带有一个 16 位字段的数据包:
module Main
import IdrisNet.PacketLang
import Data.So
myPacket : PacketLang
myPacket = with PacketLang do
bits 16
main : IO ()
main = putStrLn "hello"
我得到编译器错误:
Can't solve goal
So (fromInteger 16 > fromInteger 0)
究竟是什么问题,我该如何解决?我猜我需要向编译器证明 16 大于 0,但我不确定如何在 Idris 中执行此操作或为什么这是必要的。