Belajar Haskell dari dasar hingga production-grade: pre-requisites skill & setup environment, sejarah latar belakang & mengapa membutuhkannya, konsep dasar & arsitektur utama, instalasi & hello world, sintaks dasar definisi & fungsi, tipe data & type inference, lists tuples & pattern matching, purity laziness & evaluasi, typeclasses & ad-hoc polymorphism, cabal & build tooling, testing HUnit Hspec QuickCheck & debug, monads IO Maybe Either State, concurrency & STM, backend services Servant Scotty, data processing & streaming, database & persistence, error handling & exception, keamanan & best practice, FFI & interop, testing lanjut & property-based, GHC 9.14.1 & fitur terbaru, performance & optimization, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menyentuh Haskell, kalian perlu menguasai dasar pemrograman, konsep fungsi, tipe data, immutability & pure function. Di episode ini kalian juga menyiapkan GHCup dengan GHC 9.14.1 LTS dan cabal, memasang VS Code beserta Haskell Language Server, serta memverifikasi seluruh environment siap dipakai sepanjang series.

Menelusuri asal-usul Haskell dari nama yang diambil dari logician Haskell Curry, komite riset 1987 yang merancang standar lazy functional language, hingga standar Haskell 98 dan 2010, serta memahami mengapa kombinasi purely functional, lazy evaluation, type inference dan typeclass menjadikannya pilihan untuk correctness-critical software.

Membedah arsitektur toolchain Haskell dari kode sumber hingga binary: cara GHC mengkompilasi ke native code dengan backend LLVM dan dukungan WASM, peran GHCi sebagai REPL, serta komponen ekosistem seperti ghc, ghci, runghc, cabal, stack, HLS dan Prelude beserta alur kerja compile-evaluate-print di balik layar.

Menuntun instalasi toolchain Haskell lewat GHCup beserta verifikasi versi GHC dan cabal, lalu menulis dan menjalankan program pertama main dengan putStrLn, baik langsung via runghc, di GHCi, maupun lewat proyek cabal yang diinisialisasi dengan cabal init.

Menguasai sintaks dasar Haskell: mendefinisikan fungsi dengan pola argumen, percabangan memakai guards, binding lokal dengan where dan let, aturan layout berbasis indentasi yang menggantikan kurung kurawal, serta komentar -- dan {- -} beserta kesalahan umum yang sering membingungkan pemula.

Mengenal tipe data dasar Haskell seperti Int, Integer berpresisi arbitrari, Double, Bool, Char, String dan tuple, memahami bagaimana compiler menebak tipe lewat type inference Hindley-Milner, menulis signature eksplisit dengan ::, serta menguasai kurung dan currying pada tipe fungsi berparameter banyak.

Mendalami struktur data paling penting di Haskell: list homogen [a] dengan list comprehension, fungsi higher-order map/filter/foldl/foldr, tuple sebagai nilai komposit yang bisa menyimpan tipe berbeda, serta pattern matching untuk mendekonstruksi list dengan (x:xs), tuple dan wildcard _ termasuk perulangan dengan rekursi.

Mendalami dua properti yang membedakan Haskell dari semua bahasa mainstream: purity yang membuat fungsi deterministik dan mudah diparalelkan, serta lazy evaluation yang memungkinkan infinite list dengan take dan cycle, termasuk kapan harus memaksa evaluasi dengan operator $! dan bang patterns untuk menghindari space leak.

Memahami typeclass sebagai mekanisme ad-hoc polymorphism di Haskell: kelas standar Eq Ord Show Read Num, mendefinisikan instance sendiri dengan deriving dan implementasi manual, lalu menaiki hierarki Functor Applicative Monad beserta operator <$> <*> dan >>= sebagai fondasi komposisi efek.

Mengelola proyek Haskell secara profesional dengan cabal: struktur cabal.project dan file .cabal berisi exposed-modules, dependencies dan GHC options, alur build test run, snapshot reproducible dengan stack dan resolver Stackage LTS, serta setup HLS yang konsisten dengan versi GHC.
