Idris2/tests/idris2/basic023/Params.idr
Edwin Brady a972778eab Add test script
They don't all pass yet, for minor reasons. Coming shortly...
Unfortunately the startup overhead for chez is really noticeable here!
2020-05-19 18:25:18 +01:00

21 lines
538 B
Idris

parameters (eq : a -> a -> Bool)
lookup : a -> List (a, b) -> Maybe b
lookup x [] = Nothing
lookup x ((k, v) :: ys)
= if eq x k
then Just v
else lookup x ys
data Dict : Type -> Type where
MkDict : List (a, b) -> Dict b
lookupK : a -> Dict b -> Maybe b
lookupK k (MkDict xs) = lookup k xs
testDict : Dict {a=Int} (==) String
testDict = MkDict _ [(0, "foo"), (1, "bar")]
parameters (y : ?) -- test that the type of 'y' can be inferred
foo : (x : Int) -> x = y -> Int
foo x@_ Refl = 42