4
同じ要素を必要な長さに達するまで繰り返すことによってhvectを生成する関数hpure
を作成しようとしています。各要素は異なる型を持つことができます。例:引数がshowの場合、各要素はshow関数の特殊化になります。lenとS lenを統一すると無限の値になる
hpure show : HVect [Int -> String, String -> String, SomeRandomShowableType -> String]
これは私の試みです:
hpure : {outs : Vect k Type} -> ({a : _} -> {auto p : Elem a outs} -> a) -> HVect outs
hpure {outs = []} _ = []
hpure {outs = _ :: _ } v = v :: hpure v
このエラーは、最終的なV上で発生します。
When checking an application of Main.hpure:
Unifying len and S len would lead to infinite value
なぜエラーが発生し、どのように私はそれを修正することができますか?