https://github.com/younghakim7/haskell_lang
Haskell & My Youtube Channel - GlobalYoung https://www.youtube.com/@GlobalYoung7
https://github.com/younghakim7/haskell_lang
haskell vim
Last synced: 2 months ago
JSON representation
Haskell & My Youtube Channel - GlobalYoung https://www.youtube.com/@GlobalYoung7
- Host: GitHub
- URL: https://github.com/younghakim7/haskell_lang
- Owner: YoungHaKim7
- Created: 2022-09-01T14:24:44.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2026-01-13T10:11:59.000Z (6 months ago)
- Last Synced: 2026-01-13T10:30:26.604Z (6 months ago)
- Topics: haskell, vim
- Language: Haskell
- Homepage:
- Size: 5.77 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# link
- [(영상모아보기)코딩_Haskell하스켈 by GlobalYoung](https://youtube.com/playlist?list=PLcMveqN_07mb05Hf9KqAdvAlYuLyUNxHq&si=_iPndKxHm-OfA7eh)
# windows (WSL1)지원안함.. 무조건 WSL2로 업그레이드 하세요
- https://learn.microsoft.com/ko-kr/windows/wsl/compare-versions
# Install Dependencies
- https://www.haskell.org/ghcup/install/#system-requirements
# haskell Linux Install
- 우선 ghcup설치
- https://www.haskell.org/ghcup/
```bash
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
```
- lsp
- https://haskell-language-server.readthedocs.io/en/stable/
- lsp binary https://github.com/haskell/haskell-language-server/releases
- 구성요소(ghcup, ghc, cabal, stack, hls)(linuxOS기준)
```bash
Welcome to Haskell!
This script can download and install the following binaries:
* ghcup - The Haskell toolchain installer
* ghc - The Glasgow Haskell Compiler
* cabal - The Cabal build tool for managing Haskell software
* stack - A cross-platform program for developing Haskell projects (similar to cabal)
* hls - (optional) A language server for developers to integrate with their editor/IDE
ghcup installs only into the following directory,
which can be removed anytime:
/home/y/.ghcup
```
# Init Project Haskell
```bash
All done!
To start a simple repl, run:
ghci
To start a new haskell project in the current directory, run:
cabal init --interactive
To install other GHC versions and tools, run:
ghcup tui
If you are new to Haskell, check out https://www.haskell.org/ghcup/steps/
```
# haskell playground
- https://play.haskell.org/
# ```.gitignore``` Haskell gitignore
https://github.com/github/gitignore
```gitignore
dist
dist-*
cabal-dev
*.o
*.hi
*.hie
*.chi
*.chs.h
*.dyn_o
*.dyn_hi
.hpc
.hsenv
.cabal-sandbox/
cabal.sandbox.config
*.prof
*.aux
*.hp
*.eventlog
.stack-work/
cabal.project.local
cabal.project.local~
.HTF/
.ghc.environment.*
```
# Haskell library for the Microsoft Language Server Protocol
- https://github.com/haskell/lsp
- Install
```bash
cabal install lsp-demo-simple-server lsp-demo-reactor-server
stack install :lsp-demo-simple-server :lsp-demo-reactor-server --flag haskell-lsp:demo
```
# Try Haskell 온라인에서 간단한 코드 실행 가능
https://www.tryhaskell.org/
https://serokell.io/blog/rust-vs-haskell
# Haskell for Imperative Programmers (Basic)
https://youtube.com/playlist?list=PLe7Ei6viL6jGp1Rfu0dil1JH1SHk9bgDV
- 모나드Monads 이해하기 https://economiceco.tistory.com/18187
- Haskell for Imperative Programmers #17 - Monads https://youtu.be/IBB7JpbClo8
- 13분 35초

# What is a Monad?
- A monad is an algebraic structure in category theory, and in Haskell it is used to describe computations as sequences of steps, and to handle side effects such as state and IO.
- Monads are abstract, and they have many useful concrete instances.
- Monads provide a way to structure a program.
- They can be used (along with abstract data types) to allow actions (e.g. mutable variables) to be implemented safely.
https://www.futurelearn.com/info/courses/functional-programming-haskell/0/steps/27246
- https://en.wikipedia.org/wiki/Monoid
- In abstract algebra, a branch of mathematics, a monoid is a set equipped with an associative binary operation and an identity element. For example, the nonnegative integers with addition form a monoid, the identity element being 0.

- Monadic lenses are the optic for right monad modules III
- https://julesh.com/2023/06/28/monadic-lenses-are-the-optic-for-right-monad-modules-iii/
# Haskell CheatSheet
- 버젼별로 다 있다.
https://hackage.haskell.org/package/CheatSheet-2.9
# Haskell CheatSheet 2
https://github.com/rudymatela/concise-cheat-sheets
# Haskell-language-server
https://haskell-language-server.readthedocs.io/en/latest/index.html
# Haskell In 3 hours
https://www-ps.informatik.uni-kiel.de/~sebf/haskellIn3hours.pdf
# Haskell \_ Wiki
- 공부할 자료 많음
https://wiki.haskell.org/Haskell
# Haskelllings
https://github.com/MondayMorningHaskell/haskellings
# Haskell from Scratch
https://youtube.com/playlist?list=PLxj9UAX4Em-Ij4TKwKvo-SLp-Zbv-hB4B
# FizzBuzz - You Suck at Coding [0]
## Ben Awad
[FizzBuzz - You Suck at Coding [0]](https://youtu.be/mZWsyUKwTbg)
## 하스켈 공부하기
Learn you a Haskell ❤
http://learnyouahaskell.com/chapters
## Learn Haskell by building a blog generator
https://lhbg-book.link/
# Introduction to Cabal
https://youtu.be/a7R-2vtPLDM
# haskell 관련 파일이 잘 설치되어 있는지 한눈에 확인가능
```
$ ghcup tui
```
- 또는 ghcup list
```
$ ghcup list
[ Info ] downloading: https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-0.0.7.yaml as file C:\ghcup\cache\ghcup-0.0.7.yaml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 191k 100 191k 0 0 354k 0 --:--:-- --:--:-- --:--:-- 355k
[ Warn ] New ghc version available. To upgrade, run 'ghcup install ghc 9.4.3'
[ Warn ] New cabal version available. To upgrade, run 'ghcup install cabal 3.8.1.0'
[ Info ] verifying digest of: gs.exe
Tool Version Tags Notes
X ghc 7.10.3 base-4.8.2.0
X ghc 8.0.2 base-4.9.1.0
X ghc 8.2.2 base-4.10.1.0
X ghc 8.4.1 base-4.11.0.0
X ghc 8.4.2 base-4.11.1.0
X ghc 8.4.3 base-4.11.1.0
X ghc 8.4.4 base-4.11.1.0
X ghc 8.6.1 base-4.12.0.0
X ghc 8.6.2 base-4.12.0.0
X ghc 8.6.3 base-4.12.0.0
X ghc 8.6.4 base-4.12.0.0
X ghc 8.6.5 base-4.12.0.0
X ghc 8.8.1 base-4.13.0.0
X ghc 8.8.2 base-4.13.0.0
X ghc 8.8.3 base-4.13.0.0
X ghc 8.8.4 base-4.13.0.0
X ghc 8.10.1 base-4.14.0.0
X ghc 8.10.2 base-4.14.1.0
X ghc 8.10.3 base-4.14.1.0
X ghc 8.10.4 base-4.14.1.0
X ghc 8.10.5 base-4.14.2.0
X ghc 8.10.6 base-4.14.3.0
X ghc 8.10.7 base-4.14.3.0 hls-powered
X ghc 9.0.1 base-4.15.0.0
X ghc 9.0.2 base-4.15.1.0 hls-powered
X ghc 9.2.1 base-4.16.0.0
X ghc 9.2.2 base-4.16.1.0
X ghc 9.2.3 base-4.16.2.0 hls-powered
X ghc 9.2.4 base-4.16.3.0 hls-powered
IS ghc 9.2.5 recommended,base-4.16.4.0
X ghc 9.4.1 base-4.17.0.0 hls-powered
X ghc 9.4.2 base-4.17.0.0 hls-powered
X ghc 9.4.3 latest,base-4.17.0.0
X cabal 2.4.1.0
X cabal 3.0.0.0
X cabal 3.2.0.0
X cabal 3.4.0.0
X cabal 3.4.1.0
X cabal 3.6.0.0
IS cabal 3.6.2.0 recommended
X cabal 3.8.1.0 latest
X hls 1.1.0
X hls 1.2.0
X hls 1.3.0
X hls 1.4.0
X hls 1.5.0
X hls 1.5.1
X hls 1.6.0.0
X hls 1.6.1.0
X hls 1.7.0.0
IS hls 1.8.0.0 latest,recommended
X stack 2.5.1
X stack 2.7.1
X stack 2.7.3
X stack 2.7.5
IS stack 2.9.1 latest,recommended
IS ghcup 0.1.18.0 latest,recommended
```
# Windows OS haskell install
https://www.haskell.org/ghcup/install/
# Haskell_Lang
- 설치하는 법(macOS 기준)
하스켈을 하기 위해서 설치해야할 4가지 프로그램
- ghcup
- ghc
- haskell-stack
- cabal-install
## macos 에서 homebrew로 설치하는 방법
```
brew install ghc cabal-install haskell-stack
```
# vim에서 vista-plugin쓸 때 필요한 hasktags설치 방법
https://hackage.haskell.org/package/hasktags
```
cabal install hasktags
```
https://stackoverflow.com/questions/59817728/how-to-use-hasktags-package-for-haskell
# ghci 간단한 사용법
```
$ ghci
파이썬 처럼 명령 프롬프트 나옴
:l haskell-tu.hs
하스켈 파일 로드한 후
:r
메인 실행 같은 명령어 이걸 해야 내가 쓴 코드가 컴파일 되는것 같다.
그리고
maxInt
같은 내가 선언allocation 해준 변수 를 써 주면 바로 프린트 된 화면을 볼 수 있다.
ghci
GHCi, version 8.10.7: https://www.haskell.org/ghc/ :? for help
Prelude> :l haskell-tut.hs
[1 of 1] Compiling Main ( haskell-tut.hs, interpreted )
Ok, one module loaded.
종료시키는 방법 2가지 :q :quit
ghci> :q
Leaving GHCi.
ghci> :quit
Leaving GHCi.
```
출처: https://downloads.haskell.org/~ghc/7.4.1/docs/html/users_guide/ghci-commands.html
# stack repl 로 ghci 와 비슷하게 (cabal init을 안한 파일 실행시)(:l 하스켈파일명.hs 로드가 필요)
- cabal 사용법
https://www.youtube.com/watch?v=a7R-2vtPLDM
```
stack repl
Note: No local targets specified, so a plain ghci will be started with no
package hiding or package options.
You are using snapshot: lts-19.16
If you want to use package hiding and options, then you can try one
of the following:
* If you want to start a different project configuration
than /Users/globalyoung/.stack/global-project/stack.yaml, then you can use
stack init to create a new stack.yaml for the packages in the
current directory.
* If you want to use the project configuration
at /Users/globalyoung/.stack/global-project/stack.yaml, then you can add to its 'packages' field.
Configuring GHCi with the following packages:
GHCi, version 9.0.2: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /private/var/folders/bf/fk_kzm5n5zbfzkv31qhrglhr0000gn/T/haskell-stack-ghci/2a3bbd58/ghci-script
ghci> :l hello.hs
[1 of 1] Compiling Main ( hello.hs, interpreted )
Ok, one module loaded.
ghci> : main
What is your name
global young
Hello world Haskell global young
ghci> :q
Leaving GHCi.
```
# cabal init 한 상태에서 stack repl 실행화면
```
$ stack repl
Using main module: 1. Package `hello-stack' component hello-stack:exe:hello-stack-exe with main-is file: /Users/globalyoung/Documents/Project/Github/Haskell_Lang/Haskell_Lang/hello-stack/app/Main.hs
Building all executables for `hello-stack' once. After a successful build of all of them, only specified executables will be rebuilt.
hello-stack> configure (lib + exe)
Configuring hello-stack-0.1.0.0...
clang: warning: argument unused during compilation: '-no-pie' [-Wunused-command-line-argument]
hello-stack> initial-build-steps (lib + exe)
The following GHC options are incompatible with GHCi and have not been passed to it: -threaded
Configuring GHCi with the following packages: hello-stack
* * * * * * * *
Warning: Multiple files use the same module name:
* Paths_hello_stack found at the following paths
* /Users/globalyoung/Documents/Project/Github/Haskell_Lang/Haskell_Lang/hello-stack/.stack-work/dist/aarch64-osx/Cabal-3.4.1.0/build/autogen/Paths_hello_stack.hs (hello-stack:lib)
* /Users/globalyoung/Documents/Project/Github/Haskell_Lang/Haskell_Lang/hello-stack/.stack-work/dist/aarch64-osx/Cabal-3.4.1.0/build/hello-stack-exe/autogen/Paths_hello_stack.hs (hello-stack:exe:hello-stack-exe)
* * * * * * * *
GHCi, version 9.0.2: https://www.haskell.org/ghc/ :? for help
[1 of 3] Compiling Lib ( /Users/globalyoung/Documents/Project/Github/Haskell_Lang/Haskell_Lang/hello-stack/src/Lib.hs, interpreted )
[2 of 3] Compiling Main ( /Users/globalyoung/Documents/Project/Github/Haskell_Lang/Haskell_Lang/hello-stack/app/Main.hs, interpreted )
[3 of 3] Compiling Paths_hello_stack ( /Users/globalyoung/Documents/Project/Github/Haskell_Lang/Haskell_Lang/hello-stack/.stack-work/dist/aarch64-osx/Cabal-3.4.1.0/build/autogen/Paths_hello_stack.hs, interpreted )
Ok, three modules loaded.
Loaded GHCi configuration from /private/var/folders/bf/fk_kzm5n5zbfzkv31qhrglhr0000gn/T/haskell-stack-ghci/4da5a413/ghci-script
ghci> :main
Hello Stack haskell
ghci> :q
Leaving GHCi.
```
# Lunar Vim LSP 설치를 위해 미리 설치 필요
루나빔 Lsp를 사용하기 위해서 "ghcup" & "ghc" 2개 꼭 설치
- ghcup
- ghc
```
$ brew search ghcup
==> Formulae
ghcup ✔ ghc ✔ ghc@9
$ brew install ghcup ghc
// 2개 꼭 설치해야함.
```
```
$ brew search cabal-install
==> Formulae
cabal-install ✔
$ brew install haskell-stack
```
## ghc 로 컴파일 하고 실행 파일 만들어서 실행하기
```
$ touch haskell-tu.hs
$ ghc --make haskell-tu
// 하면 3가지 파일이 만들어진다.
haskell-tut 실행파일
haskell-tut.hi hi 파일명
haskell-tut.o o 파일명
// haskell-tut.hs 하스켈 코드
$ ./haskell-tut
코드가 실행 된다.
```
# Windows OS 에서 Haskell Install
https://www.haskell.org/ghcup/
- Windows PowerShell 에서 실행하기
```
Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;Invoke-Command -ScriptBlock ([ScriptBlock]::Create((Invoke-WebRequest https://www.haskell.org/ghcup/sh/bootstrap-haskell.ps1 -UseBasicParsing))) -ArgumentList $true
```
- 기타
```
All done!
In a new powershell or cmd.exe session, now you can...
Start a simple repl via:
ghci
Start a new haskell project in the current directory via:
cabal init --interactive
Install other GHC versions and tools via:
ghcup list
ghcup install
To install system libraries and update msys2/mingw64,
open the "Mingw haskell shell"
and the "Mingw package management docs"
desktop shortcuts.
If you are new to Haskell, check out https://www.haskell.org/ghcup/steps/
Press any key to exit
```
# ghcup step by step
https://www.haskell.org/ghcup/steps/
# haskell input and output
http://learnyouahaskell.com/input-and-output
# haskell code 예시
```
간단한 하스켈 코드
import Data.List
import System.IO
main = do
putStrLn "What's your name"
name <- getLine
putStrLn ("Hello " ++ name)
```
- haskell-tut.hs 파일을 컴파일 한 후 실행하는 방법 예시
```
$ ghc --make haskell-tut
$ ./haskell-tut
```
# Big-O Complexity Chart
https://www.bigocheatsheet.com/
# My Desmos Graphs
https://www.desmos.com/calculator/iuapuknd57
- Big Oh(O) vs Big Omega(Ω) vs Big Theta(θ) notations | Asymptotic Analysis of Algorithms with Example
https://youtu.be/1tfdr1Iv6JA
# Big O Notations
https://youtu.be/V6mKVRU1evU
- Java Algorithms
https://youtube.com/playlist?list=PLGLfVvz_LVvReUrWr94U-ZMgjYTQ538nT
- (JavaScript)Big O Notation Tutorial | Learn Big O from Andrei Neagoie [Zero To Mastery]
https://youtu.be/TUiv2UgDgOQ
# Visualizing Data Structures and Algorithms with VS Code
https://youtu.be/ElbGMWA6wA4
# The Algorithms _Rust Language
https://github.com/TheAlgorithms/Rust
# 자료 구조
https://github.com/YoungHaKim7/c_project/tree/main/exercise/002stack
- 영어 출처
https://en.wikipedia.org/wiki/Association_list
자료 구조(Well-known data structures)
유형(Type)
컬렉션(Collection) , 컨테이너(Container)
추상ADT
Abstract Data Type
연관 배열(Associative array), 우선 순위 덱(Priority Deque), 덱(Deque), 리스트(List),
멀티맵, 우선순위 큐(Priority Queue), 큐(Queue),
집합 (멀티셋, 분리 집합),
스택(stack)
Associative array(Multimap, Retrieval Data Structure), List, StackQueue(Double-ended queue), Priority queue(Double-ended priority queue), Set(Multiset, Disjoint-set)
배열(Array)
비트 배열(Bit Array), 환형 배열(Circular array), 동적 배열(Dynamic Array),
해시 테이블(Hash Table), 해시드 어레이 트리(Hashed Array Tree), 희소 배열(Sparse array)
연결형(Linked)
연관 리스트(Association list),
연결 리스트(Linked List) - 단일연결(Singly Linked List), 이중연결(Doubly Linked List), 원형 연결(Circular Linked List)
Association list,
Linked list, Skip list, Unrolled linked list, XOR linked list
트리(Trees)
B 트리,
이진 탐색 트리(AA, AVL, 레드-블랙, 자가 균형, splay)
힙(이진 힙, 피보나치) ,
R 트리( R*, R+, 힐버트),
트리(해시 트리)
B-tree, Binary search tree(AA tree, AVL tree, Red–black tree, Self-balancing tree, Splay tree),
Heap(Binary heap, Binomial heap, Fibonacci heap),
R-tree(R* tree, R+ tree, Hilbert R-tree), Trie Hash tree
그래프(Graphs)
이진 결정 다이어그램
Binary decision diagram, Directed acyclic graph, Directed acyclic word graph
## 답답해서 내가 만든 영상\_\_GlobalYoung
한글하스켈Haskell강의*01*하스켈 설치 및 변수 출력install & print helloworld #haskell
[https://youtu.be/mu20HEu06mA](https://youtu.be/mu20HEu06mA)
블로그 참고
https://economiceco.tistory.com/14472
# 다른 사람의 Haskell 한글하스켈 강의
https://youtube.com/playlist?list=PL5aSjzJqCaPaoi8yC2w549FsVgvXW5xFW
# 모든 언어를 무료로 공부할 수 있다.
출처 : stackoverflow.com
알게 된 링크
역시 갓 스택 오버플로우
https://stackoverflow.com/questions/38683512/why-git-shallow-clone-can-have-more-commits-than-depth/38683775#38683775
- Github 주소
https://github.com/EbookFoundation/free-programming-books
- EbookFoundation
https://ebookfoundation.github.io/free-programming-books/
# Hackage: The Haskell Package Repository
- Hackage is the Haskell community's central package archive of open source software. Hackage has been online since January 2007 and is constantly growing. You can publish libraries and programs or download and install packages with tools like cabal-install (or via your distro's package manager).
- https://hackage.haskell.org/
# Haskell Cabal install
https://hackage.haskell.org/package/cabal-install
# Haskell web programming__(Yesod-tutorial-for-newbies)
https://yannesposito.com/Scratch/en/blog/Yesod-tutorial-for-newbies/
# Vim Coc 관리하기
- 서버가 잘 돌아가는 체크하기
```
:CocList services
```
- Haskell ServerSetting
```
:CocConfig
```
```
{
// "workbench.colorCustomizations": {
// // Name of the theme you are currently using
// "[Default Dark+]": {
// "editorInlayHint.foreground": "#868686f0",
// "editorInlayHint.background": "#f700d6",
//
// // Overrides for specific kinds of inlay hints
// "editorInlayHint.typeForeground": "#f700d6",
// "editorInlayHint.parameterForeground": "#fdb6fdf0",
// }
//}
"workbench.colorCustomizations": {
"[Default Dark+]": {
"editorInlayHint.foreground": "#868686f0",
"editorInlayHint.background": "#f700d6",
"editorInlayHint.typeForeground": "#f700d6",
"editorInlayHint.parameterForeground": "#fdb6fdf0",
}
},
"workspace.workspaceFolderFallbackCwd": true",
"rust-analyzer.semanticHighlighting.operator.specialization.enable": true,
"rust-analyzer.inlayHints.typeHints.enable": true,
"rust-analyzer.hover.documentation.enable": true,
// rust-analyzer setting~
"rust-analyzer.inlayHints.enable": true,
// "rust-analyzer.cargo.loadOutDirsFromCheck": true,
"rust-analyzer.procMacro.enable": true,
"rust-analyzer.lens.enable": true,
"rust-analyzer.lens.implementations.enable": true,
"languageserver": {
"haskell": {
"command": "haskell-language-server-wrapper",
"args": ["--lsp"],
"rootPatterns": ["*.cabal", "stack.yaml", "cabal.project", "package.yaml", "hie.yaml"],
"filetypes": ["haskell", "lhaskell"],
// Settings are optional, here are some example values
"settings": {
"haskell": {
"checkParents": "CheckOnSave",
"checkProject": true,
"maxCompletions": 40,
"formattingProvider": "ormolu",
"plugin": {
"stan": { "globalOn": true }
}
}
}
}
}
}
```
- 내 프로그젝 파일에만 넣어야 하나
```
:CocLocalConfig
```
https://johngrib.github.io/wiki/vim/coc-nvim/
# vim 창 나누기
```
:vs 좌우로 나누기
:sp 상단하단 나누기
:terminal
$ stack repl test.hs
or
$ ghci test.hs
```
# vim 창 나눌때 WindowsOS gVim에서 PowerShell불러오기
```
:terminal powershell.exe
:terminal pwsh.exe
```
- A Vim plugin that opens an interactive terminal in a buffer for running programs
https://github.com/tc50cal/vim-terminal
# WindowsOS 실행창에서 Windows Terminal (파워셀 내장됨)바로 실행하기
- win + r
```
wt.exe
```
- 실행할 때 'ctrl + shift + enter' 하면 그냥 엔터랑 다르게 권리자 권한으로 실행된다.
https://zkim0115.tistory.com/1629
# Windows PowerShell Command
https://learn.microsoft.com/en-us/windows/terminal/command-line-arguments?tabs=powershell
```
powershell.exe
pwsh.exe
```
# DoomEmacs
But before you doom yourself, here are some things you should know:
1. Don't forget to run 'doom sync', then restart Emacs, after modifying
~/.doom.d/init.el or ~/.doom.d/packages.el.
This command ensures needed packages are installed, orphaned packages are
removed, and your autoloads/cache files are up to date. When in doubt, run
'doom sync'!
2. If something goes wrong, run `doom doctor`. It diagnoses common issues with
your environment and setup, and may offer clues about what is wrong.
3. Use 'doom upgrade' to update Doom. Doing it any other way will require
additional steps. Run 'doom help upgrade' to understand those extra steps.
4. Access Doom's documentation from within Emacs via 'SPC h d h' or 'C-h d h'
(or 'M-x doom/help')
Have fun!
✓ Finished in 4m 54s
# emacs
http://haskell.github.io/haskell-mode/manual/latest/Installation.html#Installation
