我正嘗試使用IdrisNet2庫來定義一些二進制數據結構。我正在使用IdrisNet2的Idris 0.9.17.1和commit 262b746c9a2405e43d1de6a48de44cac2fd19932。我定義的數據包,一個16位的字段:無法使用IdrisNet2創建簡單的二進制數據結構
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中做到這一點或爲什麼這是必要的。