h&{ N:      !"#$%&'()*+,-./0123456789(C) 2020-2022 Bellroy Pty Ltd BSD-3-Clause'Bellroy Tech Team  experimental Safe-Inferred~    4 88(C) 2020-2022 Bellroy Pty Ltd BSD-3-Clause'Bellroy Tech Team  experimental Safe-Inferred "589:;= aws-arnA parsed ARN. Either use the )  , or the ' and ( functions to convert : <-> . The  part of an ARN will often contain colon- or slash-separated parts which precisely identify some resource. If there is no service-specific module (see below), the * and +* optics in this module can pick apart the  field.4If you want lenses into individual fields, use the  0https://hackage.haskell.org/package/generic-lens generic-lens or  2https://hackage.haskell.org/package/generic-opticsgeneric-optics libraries.Service-Specific Modules Modules like Network.AWS.ARN.Lambda provide types to parse the resource part of an ARN into something more specific: -- Remark: Lambda._Function :: Prism' Text Lambda.Function -- Returns: Just "the-coolest-function-ever" let functionARN = "arn:aws:lambda:us-east-1:123456789012:function:the-coolest-function-ever:Alias" in functionARN ^? _ARN . #resource . Lambda._Function . #name You can also use 's ; instance and  to create (s that indicate their resource type in 's type variable: ) . " Lambda._Function :: Prism' Text ( Lambda.Function) 'aws-arn(aws-arn)aws-arn*aws-arnSplit a : into colon-separated parts.This is an improper  (-Text.intercalate ":" . Text.splitOn ":" = id, but -Text.splitOn ":" . Text.intercalate ":" /= id"). This causes violations of the ' laws for lists whose members contain ':':[":"] ^. from colons . colons["",""]*The laws are also violated on empty lists:[] ^. from colons . colons[""]!Nevertheless, it is still useful:'"foo:bar:baz" & colons . ix 1 .~ "quux""foo:quux:baz"Ed  https://old.reddit.com/r/haskell/comments/32xva8/the_laws_of_asymmetric_wellbehaved_lenses_are/cqhq1gk/discusses improper optics in an old Reddit comment.+aws-arnSplit a : into slash-separated parts.List *, this is an improper , but it is still useful:"foo/bar/baz" ^. slashes["foo","bar","baz"] '()*+ '()*+(C) 2020-2022 Bellroy Pty Ltd BSD-3-Clause'Bellroy Tech Team  experimental Safe-Inferred";= ;.aws-arnAn AWS Lambda function name, and optional alias/version qualifier.""function:helloworld" ^? _Function:Just (Function {name = "helloworld", qualifier = Nothing})*"function:helloworld:$LATEST" ^? _FunctionJust (Function {name = "helloworld", qualifier = Just "$LATEST"})%"function:helloworld:42" ^? _Function?@AB&aws-arn-0.3.0.0-CzlyUb9JnjlIsVCI7CBjrNNetwork.AWS.ARN.Internal.LensNetwork.AWS.ARNNetwork.AWS.ARN.LambdaControl.Lens.PrismbelowExchangeAnIso'Iso' Traversal'Prism'SetterGettingLens'set.~over^.prism'previewreview^?ixisofrom$fProfunctorExchangeARN partitionserviceregionaccountresource$fEqARN$fOrdARN $fShowARN $fGenericARN$fGeneric1TYPEARN $fHashableARN $fFunctorARN $fFoldableARN$fTraversableARN$fEq1ARN $fOrd1ARNparseARN renderARN_ARNcolonsslashes $fShow1ARN$fHashable1ARNFunctionname qualifier parseFunctionrenderFunction _Function $fEqFunction $fOrdFunction$fHashableFunction$fShowFunction$fGenericFunction text-1.2.5.0Data.Text.InternalTextbaseData.Traversable Traversable