packages feed

singletons-0.10.0: tests/compile-and-dump/Singletons/HigherOrder.hs

module Singletons.HigherOrder where

import Data.Singletons.TH
import Data.Singletons.List
import Data.Singletons.Maybe

$(singletons [d|
  map :: (a -> b) -> [a] -> [b]
  map _ [] = []
  map f (h:t) = (f h) : (map f t)

  liftMaybe :: (a -> b) -> Maybe a -> Maybe b
  liftMaybe f (Just x) = Just (f x)
  liftMaybe _ Nothing = Nothing
 |])