{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}

-- | Instances for LSP types which are strangely missing.
module Unison.LSP.Orphans where

import Control.Lens
import Language.LSP.Protocol.Lens (HasTextDocument (..), HasUri (..))
import Language.LSP.Protocol.Types

instance HasTextDocument TextDocumentIdentifier TextDocumentIdentifier where
  textDocument :: Lens' TextDocumentIdentifier TextDocumentIdentifier
textDocument = (TextDocumentIdentifier -> f TextDocumentIdentifier)
-> TextDocumentIdentifier -> f TextDocumentIdentifier
forall a. a -> a
Prelude.id

instance HasTextDocument VersionedTextDocumentIdentifier VersionedTextDocumentIdentifier where
  textDocument :: Lens'
  VersionedTextDocumentIdentifier VersionedTextDocumentIdentifier
textDocument = (VersionedTextDocumentIdentifier
 -> f VersionedTextDocumentIdentifier)
-> VersionedTextDocumentIdentifier
-> f VersionedTextDocumentIdentifier
forall a. a -> a
Prelude.id

instance HasUri NormalizedUri Uri where
  uri :: Lens' NormalizedUri Uri
uri = (NormalizedUri -> Uri)
-> (Uri -> NormalizedUri)
-> Iso NormalizedUri NormalizedUri Uri Uri
forall s a b t. (s -> a) -> (b -> t) -> Iso s t a b
iso NormalizedUri -> Uri
fromNormalizedUri Uri -> NormalizedUri
toNormalizedUri