-- setelem.hs: elem and set functions -- -- Copyright (C) 2021-2025 Rudy Matela -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Conjure elem' :: Int -> [Int] -> Bool elem' 0 [1] = False elem' 1 [1,2] = True elem' 0 [1,2] = False elem' 2 [0,1,2] = True set' :: [Int] -> Bool set' [1,1] = False set' [1,2] = True set' [1,0,0] = False set' [1,2,3] = True main :: IO () main = do conjure "elem" (elem') [ con True , con False , fun "||" (||) , fun "&&" (&&) , fun "not" not , con ([] :: [Int]) , fun ":" ((:) :: Int -> [Int] -> [Int]) , fun "==" ((==) :: Int -> Int -> Bool) ] conjure "set" (set') [ con True , con False , fun "||" (||) , fun "&&" (&&) , fun "not" not , con ([] :: [Int]) , fun ":" ((:) :: Int -> [Int] -> [Int]) , fun "elem" (elem :: Int -> [Int] -> Bool) ]