Skip to content

Instantly share code, notes, and snippets.

View siddhartha-gadgil's full-sized avatar

Siddhartha Gadgil siddhartha-gadgil

View GitHub Profile
_find_ : {A : Set} → List A → (A → Bool) → Option A
[] find _ = None
(x :: xs) find p = if (p x) then (Some x) else (xs find p)
_mapOption_ : {A : Set} → {B : Set} → Option A → (A → B) → Option B
None mapOption _ = None
(Some a) mapOption f = Some (f a)
_flatMapOption_ : {A : Set} → {B : Set} → Option A → (A → Option B) → Option B
None flatMapOption _ = None
(Some a) flatMapOption f = f a
data True : Set where
qed : True
data False : Set where
-- false has no constructors
moduspoens : {P : Set} → {Q : Set} → P → (P → Q) → Q
moduspoens p imp = imp p
vacuous : {A : Set} → False → A
vacuous ()
data Even : ℕ → Set where
zeroeven : Even zero
+2even : {n : ℕ} → Even n → Even (succ (succ n))
2even : Even 2
2even = +2even zeroeven
1odd : Even 1 → False
1odd ()
data _==_ {A : Set} : A → A → Set where
refl : (a : A) → a == a