{-# OPTIONS --without-K --safe #-} module DepthComonads.Function.Reasoning where open import DepthComonads.Level infixr 2 _⟨⟩⇒_ ⟨∙⟩⇒-syntax ⟨∙⟩⇒-syntax : ∀ (A : Type a) → (B → C) → (A → B) → A → C ⟨∙⟩⇒-syntax _ f g x = f (g x) syntax ⟨∙⟩⇒-syntax A f g = A ⟨ g ⟩⇒ f _⟨⟩⇒_ : ∀ (A : Type a) → (A → B) → A → B _ ⟨⟩⇒ f = f infix 2.5 _⇒∎ _⇒∎ : (A : Type a) → A → A _⇒∎ _ x = x infixr 1.5 [_]⇒_ [_]⇒_ : A → (A → B) → B [ x ]⇒ f = f x -- infix 2.5 _⇒[_] -- _⇒[_] : (A : Type a) → A → A -- _ ⇒[ x ] = x