syntactic-1.16: src/Language/Syntactic/Constructs/Identity.hs
{-# LANGUAGE TemplateHaskell #-}
-- | Identity function
module Language.Syntactic.Constructs.Identity where
import Language.Syntactic
-- | Identity function
data Identity sig
where
Id :: Identity (a :-> Full a)
instance Constrained Identity
where
{-# SPECIALIZE instance Constrained Identity #-}
{-# INLINABLE exprDict #-}
type Sat Identity = Top
exprDict = const Dict
instance Semantic Identity
where
{-# SPECIALIZE instance Semantic Identity #-}
{-# INLINABLE semantics #-}
semantics Id = Sem "id" id
semanticInstances ''Identity