mirror of
https://github.com/idris-lang/Idris2.git
synced 2024-12-21 02:31:50 +03:00
20 lines
345 B
Idris
20 lines
345 B
Idris
module List
|
|
|
|
data List a = Nil | (::) a (List a)
|
|
|
|
infixr 5 ::
|
|
infixr 5 ++
|
|
|
|
interface Monoid ty where
|
|
||| Users can hand-craft their own monoid implementations
|
|
constructor MkMonoid
|
|
neutral : ty
|
|
(++) : ty -> ty -> ty
|
|
|
|
Monoid (List a) where
|
|
neutral = []
|
|
|
|
xs ++ ys = case xs of
|
|
[] => ys
|
|
(x :: xs) => let ih = xs ++ ys in x :: ih
|